今天在做如下題目的時候遇到了問題:
我當時的**如下:
#include
intmain()
printf
("%d"
, n)
;return0;
}
當**編譯執行之後便出現了問題,按照輸入輸出樣例來看,輸入1後應該輸出2, 但執行結果確實3
隨後經過除錯,網上查詢資訊後發現是對for迴圈語句的理解不到位
乙個簡單的for語句有以下幾部分組成
for
(語句1
; 語句2
; 語句3
)
這時候我們分析一下它的執行順序
第一次:1->2->4
第二次:3->2->4
第三次:3->2->4
…依次進行下去,直到語句2為false
也就是說我的問題處在最後那一步的n的自增上,當不滿足s經過簡單的調整後,提交了最終正確的**
#include
intmain()
printf
("%d"
, n)
;return0;
}
for迴圈的語句執行順序
在乙個技術qq群中,試著做了一道c的題,感覺是考察for迴圈的執行流程.原題 在c語言中,下列 的輸出結果是 選擇一項 void main j printf d,d i,j a 0,109,9 b 0,10 10,10c 10,10d 9,11 群裡居然有不少人都選了b,那個提問者還一直在問正確的結...
for迴圈的語句執行順序
在乙個技術qq群中,試著做了一道c的題,感覺是考察for迴圈的執行流程.原題 在c語言中,下列 的輸出結果是 選擇一項 void main j printf d,d i,j a 0,109,9 b 0,10 10,10c 10,10d 9,11 群裡居然有不少人都選了b,那個提問者還一直在問正確的結...
for迴圈語句頭的執行順序
for迴圈語句頭有3個部分 初始化 判讀條件 乙個表示式 有3個疑惑 1 第一次例如初始化i 0,是否還執行後面的i 或 i?第一次先初始化,然後判斷,i 就不執行了 2 第一次完了以後,初始化這句就不用了,是先執行i 還是限制性判斷語句呢?先執行i 3 現在知道是先執行i 再執行判斷語句,i 不是...