灵魂刀神 2022-05-01 16:09 采纳率: 100%
浏览 17
已结题

循环运行顺序,搞不清

#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条回答 默认 最新

  • 树下等苹果 2022-05-01 16:26
    关注

    1、会输出两个数组相同的数,是因为你写了:if(a[i]==b[j]) break;当两个数组中有相同的数,就跳出内层循环,这时候符合j<6,所以输出这个相同的数
    2、当没有相同的数时,也不会输出a[0],因为执行完内层循环,最后一是j=5,但是还要执行j++操作,令j=6,再对j进行判断不满足j<6,才会结束内存循环,这时候不满足输入a[0]条件j<6,因此不会输出

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 已采纳回答 5月1日
  • 创建了问题 5月1日