C 语言程序题目 需要解题步骤

来源:百度知道 编辑:UC知道 时间:2024/05/09 17:59:47
#include<stdio.h>
main()
{
int i=0,a=0;
while(i<20)
{for(;;)
{((i%10)==0)break;
else i--
}
i+=11;a+=i;
}
printf("%d\n",a);
}
答案是非颠倒32,我需要过程和思路,谢谢啦

因为(i=0)<20 所以进入循环
for(;;)
{if((i%10)==0)break;
else i--
}是死循环作用是要求i的值要能被10整除,如果不能被整除i就减1
因为0%10=0跳出继续
i+=11也就是i=0+11,i赋值11
a+=i ,a=0+11,a赋值11
跳回循环条件因为(i=11)<20 所以进入循环
进入for的死循环 11-1=10 10能被10整除跳出;
i+=11//i=10+11所以i=21
a+=21//a=11+21所以a=32
跳回循环条件因为(i=21)>20所以循环结束
输出a的值32

有点乱希望你能看的明白

i=0 → 0%10=0 → 跳出for循环 → i+=11 a+=i → i=11,a=11 →
while(i<20)成立 → i%10=1不成立 → i--(之后i为10) →i%10=0 → 跳出for →i+=11,a+=i → i=21,a=11+21=32 → 循环不成立,输出a。