#include <stdio.h>
void main(){
int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j;
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
if(a[i]==b[j]) break;
if(j<6) printf("%d",a[i]);
}
printf("\n");
}
为啥会输出两个数组里面相同的数啊,j小于6的时候,不应该连续输出五遍a[0]嘛
1、会输出两个数组相同的数,是因为你写了:if(a[i]==b[j]) break;当两个数组中有相同的数,就跳出内层循环,这时候符合j<6,所以输出这个相同的数
2、当没有相同的数时,也不会输出a[0],因为执行完内层循环,最后一是j=5,但是还要执行j++操作,令j=6,再对j进行判断不满足j<6,才会结束内存循环,这时候不满足输入a[0]条件j<6,因此不会输出