P34 2 数组

来源:百度知道 编辑:UC知道 时间:2024/06/24 15:58:40
main()
{int p[7]={11,13,14,15,16,17,18};
int i=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);

}程序输出结果
求详解

这题没输出,是个死循环。
第一次while循环: i=0;j=i;
判断 i<7&&p[i]%2==1 成立,所以 j=j+p[i++]=0+11=11;
因为++在后面,所以先计算,再i++,i=1;
第二次while循环, i=1;j=11;
判断i<7&&p[i]%2==1 不成立;后面的j+=……就不执行;
第三次循环, i和j的值不变,i=1;j=11;
与上面一样,判断依然不成立;由于循环条件不再发生变化,所以陷入死循环;

程序输出结果
24
while中若数组中的数据是偶数就马上退出循环
也就是说到14的时候就退出了,所以j=11+13=24