找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2698|回復(fù): 15
打印 上一主題 下一主題
收起左側(cè)

新手學(xué)c51單片機編程有個疑問?求各位老師給小弟一點指導(dǎo),謝謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:404479 發(fā)表于 2018-9-30 18:51 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
首先,程序第一步a>0,于是就循環(huán),當(dāng)程序走到s=s+i,也就是s=0+100=100,相當(dāng)于現(xiàn)在s=100了,然后執(zhí)行下一段,也就是i=i-1,也就是i=99了,那么,程序又一個循環(huán),又到s=s+i,那么,現(xiàn)在的i值剛被減過一次了,就是99了,剛剛的s加過一次也就是100了,那么我想不明白為什么不是第一次,0+100...第二次,100+99,第三次199+98就這樣一直持續(xù)加到i=0退出循環(huán),搞不懂為什么會出現(xiàn)1+....100=5050,這個1是怎么來的?各位大神,能幫我詳細的分析一下么!謝謝了!

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

Screenshot_20180930-103623.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:378182 發(fā)表于 2018-9-30 20:41 | 只看該作者
i=i-1,當(dāng)減至i=1時,循環(huán)依然執(zhí)行,s=s+1。再執(zhí)行i=i-1時,i=0跳出循環(huán)。
所以s=0+100+99+98+........+2+1=5050
回復(fù)

使用道具 舉報

板凳
ID:277374 發(fā)表于 2018-9-30 20:58 | 只看該作者
1+....100=5050,那么100+....1=5050同樣是成立的啊。0+100,100+99,199+98,看到?jīng)]?加號后邊的數(shù)是從100一直減小到1的。明白了么?程序計算過程正好與打印信息反著的
回復(fù)

使用道具 舉報

地板
ID:310519 發(fā)表于 2018-9-30 21:34 | 只看該作者
不知道你想表達什么。

1怎么來的?

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

當(dāng)減到 i =2 時, i = i - 1 =1, 就是這么來的......
回復(fù)

使用道具 舉報

5#
ID:315599 發(fā)表于 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.+
回復(fù)

使用道具 舉報

6#
ID:315599 發(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+...+2+1,你把這一大串式子倒過來看s=1+2+...+99+100是不是圖中printf中打印的????
回復(fù)

使用道具 舉報

7#
ID:277550 發(fā)表于 2018-10-1 01:58 | 只看該作者

~~~~~~~~~~~~~
為何不是呢,把每一步的s打印出來,和i也打印出來,對比就知道了
回復(fù)

使用道具 舉報

8#
ID:187614 發(fā)表于 2018-10-1 07:06 | 只看該作者
單步調(diào)試一下,什么都明白了,別想像了。
回復(fù)

使用道具 舉報

9#
ID:386381 發(fā)表于 2018-10-1 08:39 來自觸屏版 | 只看該作者
這個確實有點繞,仿真調(diào)試一下,一步一步來
回復(fù)

使用道具 舉報

10#
ID:404576 發(fā)表于 2018-10-1 09:56 | 只看該作者
循環(huán)的判斷條件是i>0,當(dāng)i=1時進入最后一次的循環(huán),此時注意是先進行s=s+i,再進行i=i-1,故前面s=0+100+99+....+1
回復(fù)

使用道具 舉報

11#
ID:404479 發(fā)表于 2018-10-1 13:04 來自觸屏版 | 只看該作者
hbnpmw 發(fā)表于 2018-9-30 20:58
1+....100=5050,那么100+....1=5050同樣是成立的啊。0+100,100+99,199+98,看到?jīng)]?加號后邊的數(shù)是從100 ...

謝謝你,我弄懂了!
回復(fù)

使用道具 舉報

12#
ID:404479 發(fā)表于 2018-10-1 13:04 來自觸屏版 | 只看該作者
znz43a 發(fā)表于 2018-9-30 20:41
i=i-1,當(dāng)減至i=1時,循環(huán)依然執(zhí)行,s=s+1。再執(zhí)行i=i-1時,i=0跳出循環(huán)。
所以s=0+100+99+98+........+2+ ...

謝謝,我懂了!
回復(fù)

使用道具 舉報

13#
ID:404479 發(fā)表于 2018-10-1 13:05 來自觸屏版 | 只看該作者
diy1997 發(fā)表于 2018-9-30 21:34
不知道你想表達什么。

1怎么來的?

謝謝你
回復(fù)

使用道具 舉報

14#
ID:404479 發(fā)表于 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+.. ...

謝謝你
回復(fù)

使用道具 舉報

15#
ID:404479 發(fā)表于 2018-10-1 13:05 來自觸屏版 | 只看該作者
David---xin 發(fā)表于 2018-10-1 09:56
循環(huán)的判斷條件是i>0,當(dāng)i=1時進入最后一次的循環(huán),此時注意是先進行s=s+i,再進行i=i-1,故前面s=0+100+99+.. ...

謝謝你
回復(fù)

使用道具 舉報

16#
ID:404479 發(fā)表于 2018-10-1 13:07 來自觸屏版 | 只看該作者
謝謝大家,你們真的一說,我全懂了!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表