標題: 新手學c51單片機編程有個疑問?求各位老師給小弟一點指導,謝謝 [打印本頁]

作者: tanghao8887    時間: 2018-9-30 18:51
標題: 新手學c51單片機編程有個疑問?求各位老師給小弟一點指導,謝謝
首先,程序第一步a>0,于是就循環(huán),當程序走到s=s+i,也就是s=0+100=100,相當于現在s=100了,然后執(zhí)行下一段,也就是i=i-1,也就是i=99了,那么,程序又一個循環(huán),又到s=s+i,那么,現在的i值剛被減過一次了,就是99了,剛剛的s加過一次也就是100了,那么我想不明白為什么不是第一次,0+100...第二次,100+99,第三次199+98就這樣一直持續(xù)加到i=0退出循環(huán),搞不懂為什么會出現1+....100=5050,這個1是怎么來的?各位大神,能幫我詳細的分析一下么!謝謝了!

Screenshot_20180930-103623.png (74.18 KB, 下載次數: 33)

Screenshot_20180930-103623.png

作者: znz43a    時間: 2018-9-30 20:41
i=i-1,當減至i=1時,循環(huán)依然執(zhí)行,s=s+1。再執(zhí)行i=i-1時,i=0跳出循環(huán)。
所以s=0+100+99+98+........+2+1=5050

作者: hbnpmw    時間: 2018-9-30 20:58
1+....100=5050,那么100+....1=5050同樣是成立的啊。0+100,100+99,199+98,看到沒?加號后邊的數是從100一直減小到1的。明白了么?程序計算過程正好與打印信息反著的
作者: diy1997    時間: 2018-9-30 21:34
不知道你想表達什么。

1怎么來的?

i =100;  當i>0時,會一直執(zhí)行 i =i -1;

當減到 i =2 時, i = i - 1 =1, 就是這么來的......
作者: 丨釋然丶居士灬    時間: 2018-9-30 23:24
起初s=s+i=100,i=i-1=99,下一次循環(huán)s=100+99,再下一次循環(huán)s=100+99+98,一直運行直到最后s=100+99+98+...+2+1,你把這一大串式子倒過來看s=1+2+...+99.+
作者: 丨釋然丶居士灬    時間: 2018-9-30 23:25
起初s=s+i=100,i=i-1=99,下一次循環(huán)s=100+99,再下一次循環(huán)s=100+99+98,一直運行直到最后s=100+99+98+...+2+1,你把這一大串式子倒過來看s=1+2+...+99+100是不是圖中printf中打印的????
作者: devcang    時間: 2018-10-1 01:58

~~~~~~~~~~~~~
為何不是呢,把每一步的s打印出來,和i也打印出來,對比就知道了
作者: 51Lovers    時間: 2018-10-1 07:06
單步調試一下,什么都明白了,別想像了。
作者: 文鳳軒    時間: 2018-10-1 08:39
這個確實有點繞,仿真調試一下,一步一步來
作者: David---xin    時間: 2018-10-1 09:56
循環(huán)的判斷條件是i>0,當i=1時進入最后一次的循環(huán),此時注意是先進行s=s+i,再進行i=i-1,故前面s=0+100+99+....+1
作者: tanghao8887    時間: 2018-10-1 13:04
hbnpmw 發(fā)表于 2018-9-30 20:58
1+....100=5050,那么100+....1=5050同樣是成立的啊。0+100,100+99,199+98,看到沒?加號后邊的數是從100 ...

謝謝你,我弄懂了!
作者: tanghao8887    時間: 2018-10-1 13:04
znz43a 發(fā)表于 2018-9-30 20:41
i=i-1,當減至i=1時,循環(huán)依然執(zhí)行,s=s+1。再執(zhí)行i=i-1時,i=0跳出循環(huán)。
所以s=0+100+99+98+........+2+ ...

謝謝,我懂了!
作者: tanghao8887    時間: 2018-10-1 13:05
diy1997 發(fā)表于 2018-9-30 21:34
不知道你想表達什么。

1怎么來的?

謝謝你
作者: tanghao8887    時間: 2018-10-1 13:05
丨釋然丶居士灬 發(fā)表于 2018-9-30 23:25
起初s=s+i=100,i=i-1=99,下一次循環(huán)s=100+99,再下一次循環(huán)s=100+99+98,一直運行直到最后s=100+99+98+.. ...

謝謝你
作者: tanghao8887    時間: 2018-10-1 13:05
David---xin 發(fā)表于 2018-10-1 09:56
循環(huán)的判斷條件是i>0,當i=1時進入最后一次的循環(huán),此時注意是先進行s=s+i,再進行i=i-1,故前面s=0+100+99+.. ...

謝謝你
作者: tanghao8887    時間: 2018-10-1 13:07
謝謝大家,你們真的一說,我全懂了!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1