2 回答

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
第一次
k = 5
然后m=0
然后第二重for循環
do something
然后第二次
k=4
然后m=0
然后第二重循環
do something
。。。。
到最后一次
k=1
然后m=0
然后第二重for循環
m=0+1*1 //m=1
m=1+1*2 //m=3
m=3+1*3 //m=6
m=6+1*4 //m=10
m=10+1*5 //m=15
所以最后輸出15
關鍵在于你的m=0放在了第一個for循環里面
每次m都被重新賦值為0

慕村225694
TA貢獻1880條經驗 獲得超4個贊
答案確實是:15
當k取5,4,3,2的時候,雖然第二個for循環會執行,但是在第二個for循環不滿足條件的時候,會跳到外層循環中,執行外層循環的時候,m首先被賦值為:0,所以當k=1時,m開始值為0,執行第二個循環的過程是:j=k=1 時:m=0+1*1 j++
j=2 時: m=1+1*2 j++
j=3 時: m=3+1*3 j++
j=4 時: m=6+1*4 j++
j=5 時: m=10+1*5 j++
j=6時:不滿足條件跳出內層循環 同時k=k-1
k=0不滿足循環條件,跳出外層循環,所以最后輸出m的值:15
其實這個程序可以簡化為:
{
int k,j,m;
m=0;
for(j=1;j<=5;j++){
m=m+j;
}
printf("%d\n",m);
}
添加回答
舉報
0/150
提交
取消