c语言问题: 关于数组

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:16:06
输入三组数
然后输出三组数中重复两次以上的数
该怎么写呢?`

#include <stdio.h>
void main(){
int a[120]; //用来输入的数组
int b[120]; //用来保存数据的数组
int i,j,k,m,l=0,p=1;
printf("please input first:");
for(i=0;i<40;i++){scanf("%d",&a[i]); if(getchar()=='\n')break;} //第一个数组
printf("please input second:");
for(i++;i<80;i++){scanf("%d",&a[i]);if(getchar()=='\n')break;} //第二个数组
printf("please input third:");
for(i++;i<120;i++){scanf("%d",&a[i]);if(getchar()=='\n')break; } //第三个数组
for(j=0;j<=i;j++){
for(m=0;m<l;m++)if(a[j]==b[m]){p=0;break;} //b中已经拥有的相同的数字就不要保存了
if(p==0){p=1;continue;}
for(k=j+1;k<=i;k++)if(a[j]==a[k]){b[l++]=a[j];break;}
//把相同的放在数组b
}
for(j=0;j<l;j++) //控制输出
printf("%d ",b[j]);
}

其实几个数组都一样很多问题写的是很多数组都能转化为一个数组做的,我是这样理解的,不就是空间吗 都一样。只要表现出来有三个数组就可以了

循环起来呀,从a[0]开始,跟b[]里的比.不相等就break; 相等就