
请点击输入图片描述
代码拷贝——
#include "stdio.h"
int main(int argc,char *argv[]){
int a[10]={1,2,1,1,2,4,5,6,5,4},n,i,j,k
for(n=10,i=0i<ni++)
for(j=i+1j<nj++)
if(a[i]==a[j])
for(n--,k=i--,j=k+1j<=na[k++]=a[j++])
for(i=0i<nprintf("%d ",a[i++]))
printf("\n")
return 0
}
main(){int a[20]={12,34,56,67,89,123,345,367,890,1234,1236,1345,1456,1789,1999,2111,2222,3333,4444,5555},i,n
printf("请输入要查找的数:")
scanf("%d",&n)
for(i=0i<20i++)
if(a[i]==n) {printf("该数的下标值是%d",i)break}
if(i==20) printf("no found")}
这里是借用第三个数组。原理:先将两个数组复制到第三个数组中,然后对第三个数组排序
如果不使用第三个函数,那么下面这个函数一样可以做到,不过函数声明就要改成:
char* fun(char *dest, char *str, char *dest)
/*------------------------------函数--------------------------------*/
char* fun(char *str1,char *str2,char *dest) //前提,目标数组能偶容纳两个数组
{
char *tmp=dest
char *tmp_dest=dest
if(!dest)
return NULL
while(*str1) //将str1复制进dest
*tmp++=*str1++
while(*str2) //将str2复制进dest
*tmp++=*str2++
tmp_dest--//
while(*++tmp_dest) //选择排序法
{
char *tmp_px=NULL
tmp=tmp_dest
while(*++tmp) //找到后面一串的最值
{
if(*tmp_dest<*tmp)
tmp_px=tmp
}
if(!tmp_px)
{
char ch=*tmp_dest
*tmp_dest=*tmp_px
*tmp_px=ch
}
}
return dest
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)