2 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
第一次
k = 5
然后m=0
然后第二重for循環(huán)
do something
然后第二次
k=4
然后m=0
然后第二重循環(huán)
do something
。。。。
到最后一次
k=1
然后m=0
然后第二重for循環(huán)
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
關(guān)鍵在于你的m=0放在了第一個for循環(huán)里面
每次m都被重新賦值為0

TA貢獻1880條經(jīng)驗 獲得超4個贊
答案確實是:15
當(dāng)k取5,4,3,2的時候,雖然第二個for循環(huán)會執(zhí)行,但是在第二個for循環(huán)不滿足條件的時候,會跳到外層循環(huán)中,執(zhí)行外層循環(huán)的時候,m首先被賦值為:0,所以當(dāng)k=1時,m開始值為0,執(zhí)行第二個循環(huán)的過程是: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時:不滿足條件跳出內(nèi)層循環(huán) 同時k=k-1
k=0不滿足循環(huán)條件,跳出外層循環(huán),所以最后輸出m的值:15
其實這個程序可以簡化為:
{
int k,j,m;
m=0;
for(j=1;j<=5;j++){
m=m+j;
}
printf("%d\n",m);
}
添加回答
舉報