4252716 答案应该是这个吧,J是在任何时候都小于6,这里没有等于6啊,
b[5]={27,13,4,25,23,16}这个了
你定义的 b[6]是这个样子的 b[6]={27,13,4,25,23,16,0}
第一个数就是 b[0]=27 b[1]=13 以此类推 b[5]=16了,知道了吧
还有循环是
第一个FOR循环,给i赋初值0,即 i=0
第二个FOR循环式嵌套在第一个FOR里面的,给j赋初值0,即j=0
第一个
if语句,是嵌套在第二个FOR循环里面的。进行比较,第一次先比较a[0]和b[0]是否相等,不相等的话,就再进行第二个FOR语句的j++,使J=1,然后再进行第一个if语句的比较,直到它们相等,就从break跳出去,进行第二个if语句。。第二个if语句是和第二个for语句并列的,即第二个if语句只是嵌套在第一个FOR语句里面。然后输出a[0]。但是当FOR语句循环完了,也没有使a[0]和b[j]相等的话,这个时候j是等于6的,进行第二个if条件语句,因为j=6,不符合if(j<6),所以就不输出a[0],之后就再进行第一个FOR循环,i++,使i=1,然后再一次进行循环。
使你更容易明白点,可以把程序看成这个样子
#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");
}
改成这样,容易理解了吧