在下面的程序中使用代码玩游戏,我假设星星应该打印在屏幕上,但是它退出循环而没有打印任何内容,为什么至少有一颗星星在进入循环时没有打印。
#include<stdio.h>
void main()
{
int i,sum_sq=0, sq_sum=0;
for(i=0;i<=10&&(sum_sq+=i*i)&&(sq_sum+=i);++i)
{
printf("*");
}
printf("%d",sq_sum*sq_sum - sum_sq);
}
答案 0 :(得分:0)
((i<=10)&&(sum_sq+=i*i)&&(sq_sum+=i))
此条件为假。输出
true && 0 && 0 =否;
最后,编译器识别出错误。这样就印出了星星。请尝试以下代码。
int i,sum_sq = 0,sq_sum = 0;
for(i=0;((i<=10)&&(sum_sq+=(i+1)*(i+1))&&(sq_sum=i+2));++i)
{
sum_sq += i*i;
printf("%d ",sum_sq);
sq_sum+=i;
printf("%d ",sum_sq);
printf(" *\n");
}
如果条件为真或为假,则每次循环。