求个C语言有关数组的程序

求个C语言有关数组的程序,第1张

请点击输入图片描述

代码拷贝——

#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

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8123792.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存