1樓:匿名使用者
for(i=0;i<=100;++i) 改為for(i=0;i<100;++i) 就是100了。
for(i=0;i<100;++i) 執行流程:
將i=0,判斷i是否滿足<=100 滿足則執行 sum+i;然後++i;判斷判斷i是否滿足<=100 滿足則執行 sum+i;這樣迴圈的。i=101不滿足條件就退出了。所以i=101;
至於i++=101 ,是你沒理解i++和++i的區別:
i++作為一個表示式,是計算玩表示式才將i+1,你輸出完i++再接著輸出i就是102了!
++i是先i+1再計算表示式的,所以輸出是102!接著輸出i還是102!
例子:i=100;
printf("i=%d",i);
輸出:i=100, i++=100
i=101;++i=102
i=102
好好體會吧。 個人認為這個特性沒什麼實用價值,只是把人腦子搞亂而已。
2樓:匿名使用者
這個問題和用哪種c++編譯器沒有關係。
i++和i++的區別:
若有賦值語句 t=i++; i先把當前值賦給t,然後再自增 1
若是賦值語句 t=++i; i先自增 1 ,然後再把值賦給t
所以這兩條語句有區別
若為語句 i++;或 ++i; 程式執行完它們後 i值都自增 1 ,所以這兩條語句沒有區別,得到相同的結果。
表示式 ++i 或 i++ 執行完後的結果也是一樣的,都是自增 1;
關於++i 和 i++ 可以參考一些c++基本教材,上面一般都詳細解說了的。
確定 i 值:先假設已經迴圈到了 i=100 狀態。此時,代入迴圈條件有100<=100,
顯然是成立的,於是執行迴圈體;執行完迴圈體後,執行表示式 ++i ;完成後,i=101 ;進入下一輪迴圈,執行迴圈條件判斷 知 101<=100 顯然不成立,於是迴圈結束
此時 i=101;
3樓:帳號已登出
i<=100 的問題。for(i=0;i<=100;++i) 從0開始環境,到100等於101次。
改為for(i=0;i<=10;++i)好數點`你點一下0。1。2。。。10有多少個數先。
至於在for中用 ++i 還是 i++對流程並沒有影響。不過c++primer書上說用++i效率高點。
4樓:幸福ing男孩
for語句是先計算i的值再和迴圈條件進行對比,不管是i++還是++ii的最後一次賦值都是101,所以當你輸出i的值當然是101
5樓:
雖然i++是先運算後自增,++i是先自增在運算,當執行到i=100的時候還行進行一次求和,然後無論是i++還是++i都進行i<=100的判斷,i已經有過動作,所以
i++和++i到輸出的時當然都是101了。
6樓:匿名使用者
for迴圈中i=100時還進入到了迴圈,因為你的判斷條件是i<=100,所以進入迴圈後i自加了
7樓:匿名使用者
應該用for (i=0;i<100;i++)或for (i=1;i<=100;i++)
和i++,++i沒關係的
c語言問題,C語言問題!
prid32是個什麼?而且你的雙引號得加轉義符吧?去掉prid32前後的雙引號,另外prid32是否有定義?你的這個軟體支援c99或者c11嘛 就像vc6.0版本太老就不支援c99 看看軟體支不支援 沒有巨集定義,在標頭檔案下面加 define prid32 d c語言問題!因為s是一個指向floa...
c語言問題,c語言問題
include void main 定義f 0 1 f 1 1 for i 2 i 20 i 從2開始到19做迴圈,這裡你少打一個i f i f i 2 f i 1 例如當前i 2則f 2 f 0 f 1 2 迴圈繼續 i 3則 f 3 f 2 f 1 3 迴圈繼續.for i 0 i 20 i 從...
C語言問題,C語言問題,求助
數學水平是要的,重要的是邏輯思維!函式也是要的,沒那你就寫不出什麼好的程式!這函式又和課本上的數學函式有點不一樣!但不象數學函式那麼難,但比數學函式靈活,也有意思。可不是要所有課本的數學函式!課本數學可以不好,但是你邏輯思維一定要好,熊貓燒香知道吧,寫這程式的人只是中專畢業!英語前期是不需要的!因為...