今天拿到一个新的程序题目,题目要求是这样的:判断两个数组是不是有相同的元素。乍一看,觉得题目好像不难,于是我就信心满满的写下了如下程序:
#include<stdio.h>
#defineN 7
main(void)
{
int i=0,j=0;
char a[]={"abcdefg"},b[]={"ghijklm"};
{
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
if(a[i]==b[j])
{
printf("两个数组里有相同元素?\n");
continue;
}
}
}
system("pause");
return 0;
}
结果我拿着这个程序出去炫耀的时候,却被大神们说是垃圾程序。原因是这样的,我的这个程序已经给定了既定数组,所以只能判断此既定数组,没有一点灵活性。回去反复思考同学的话,也觉得不无道理。于是,又经过一番认真思考,我得出了我的第二个程序。
修改后的程序
#include<stdio.h>
int main ()
{
intaa[100],bb[100];
inti=0,j=0,flag=0;
scanf("%d",&aa);
scanf("%d",&bb);
for(i=0;i<sizeof(aa[i])/sizeof(aa[0]);i++)
{
for(j=0;j<sizeof(bb[j])/sizeof(bb[0]);j++)
{
if(aa[i]==bb[j])
{
printf("有®D相¨¤同ª?的Ì?元a素?\n");
flag=1;
}
break;
}
break;
}
if(flag==0)
{
printf("没有相同元?\n");
}
system("pause");
return0;
}