我不明白为什么这个循环不执行是块

时间:2018-09-29 05:28:01

标签: loops

在下面的程序中使用代码玩游戏,我假设星星应该打印在屏幕上,但是它退出循环而没有打印任何内容,为什么至少有一颗星星在进入循环时没有打印。

  #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);
}

1 个答案:

答案 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");
}

如果条件为真或为假,则每次循环。