在c语言中输入数组两个数组,查找重复元素并输出怎么写啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在c语言中输入数组两个数组,查找重复元素并输出怎么写啊相关的知识,希望对你有一定的参考价值。
可以一次读入N个数据。可以考虑以回车结束读入的一组。参考如下写法:
#include "stdio.h"
#define Max 100
int X[Max]=0,,Y[Max]=0,;
int main()
int i=0,j=0;
int a,b;
char c=0;
printf("输入第一个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",X+i++,&c);
c=0;
printf("输入第二个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",Y+j++,&c);
for(a=0;a<i;a++)
for(b=0;b<j;b++)
if(X[a]==Y[b])
printf("%d \t",X[a]);
return 0;
参考技术A 给你思路,用循环逐个读取一个数组中的元素,在与另一个数组中的元素逐个比较追问
main()
int a[4],b[4];
int i,j;
for(i=0;i<4;i++)
printf("%d:",i);
scanf(" %d",&a[i]);
for(j=0;j<4;j++)
printf("%d:",j);
scanf(" %d",&b[j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(a[i]==b[j]);
printf(" %d",b[i]);
getch();
就是这样,不过建议你在输出后加空格这样每个元素就分开了printf("%d ",b[i])
追问可是这个不对啊
追答那个你把输出放错位置了#include
int main()
int a[4],b[4];
int i,j;
for(i=0;i<4;i++)
printf("%d:",i);
scanf(" %d",&a[i]);
for(j=0;j<4;j++)
printf("%d:",j);
scanf(" %d",&b[j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(a[i]==b[j]);
printf(" %d",a[i]);//在这
getch();
为什么是i<N呢
追答#define N 10 /*也可以是其他数
#define M 10 /*也可以是其他数
int main ()
int a[N]; b[M];
.............
望采纳,谢谢
【C语言】查找:给定有10个元素的整数数组,输入一个数,在数组中查找是该数
查找:给定有10个元素的整数数组,输入一个数,在数组中查找是该数
要求
如果找到,输出该数在数组中的位置
如果数组中有多个数等于查找关键字,试给予不同的处理
若数组为排序的(升序或降序),试改为折半查找法
求解啊。。感激不尽!
#define COMMON 0
#define MUL_EQU 1
#define ORDER 2
#define INC 1
#define DEC 2
int main()
int array[10];
int i,n,type,index,found=0,order;
printf("Input 10 integers:");
for(i=0;i<10;i++)
scanf("%d",&n);
array[i]=n;
printf("Input array type.\n \"0\" for Common\n \"1\" for 2 or more equal numbers\n \"2\" for ordered array\n:");
scanf("%d",&type);
switch(type)
case COMMON:
printf("Input index to search:");
scanf("%d",&index);
for(i=0;i<10;i++)
if(array[i]==index)
printf("Found at array[%d].\n",i);
return 0;
printf("Index not found!\n");
return 0;
case MUL_EQU:
printf("Input index to search:");
scanf("%d",&index);
for(i=0;i<10;i++)
if(array[i]==index)
printf("Found at array[%d].\n",i);
found=1;
if(found==0) printf("Index not found!\n");
return 0;
case ORDER:
if(array[0]<array[1])
order=INC;
else
order=DEC;
printf("Input index to search:");
scanf("%d",&index);
if(index==array[5])
printf("Found at array[5]\n");
return 0;
else if(index>array[5])
for(i=6;i<10;i++)
if(array[i]==index)
printf("Found at array[%d]\n",i);
return 0;
printf("Index not found!\n");
return 0;
else if(index<array[5])
for(i=0;i<5;i++)
if(array[i]==index)
printf("Found at array[%d]\n",i);
return 0;
printf("Index not found!\n");
return 0;
return 0;
需要注释吗?追问
如果有注释当然最好了~还有。..怎么运行啊?不好意思啊菜鸟一只
追答我发现有个错误,把后半部分改掉了。不好意思,解答还这个样子⋯⋯
另外运行的话TC2啦WinTC啦应该都可以。大概吧⋯⋯(笑)因为我不清楚Windows的C,我用linux的GCC调试通过了,不过我没有Windows,没法试验,就只好麻烦你自己试一下了⋯⋯
加注释后百度说我超字数⋯⋯怎么办⋯⋯
以上是关于在c语言中输入数组两个数组,查找重复元素并输出怎么写啊的主要内容,如果未能解决你的问题,请参考以下文章