1樓:xu筱莫
i++是後置運算子,表示i先參加運算在加一for(int i=1;i++<4;)的執行順序是:
i=1;
i<4;
i+1;
由此可看出此語句等同於for(int i=1;i<4;i++),表示i執行三次迴圈
而for(int 1=2;i<5;i++),i也是執行三次迴圈所以相互等價於
望採納!
2樓:聽不清啊
for(int i=1;i++<4;) 和 for(int i=2;i<5;i++)
一般情況下是不等價的。
只有在迴圈體中不包含 i 的情況下,它們才是等價的(都是執行迴圈體3次)
前者是i=1,2,3進行迴圈,
後者是i=2,3,4進行迴圈。
3樓:匿名使用者
你好,前一個for起始i=1,在(i++<4)這裡,i已經先加1了,所以迴圈到int i後,它是先+1然後再與4比較大小。
後一個for就是正常寫法了,樓主應該理解,i=2,先比較大小,然後再+1,走完for下面的迴圈再拿+1後的i再和5比較大小。
4樓:思念不溼
#includevoid main()
#include
void main()
這個相信不用解釋了吧
5樓:是個不錯的小夥
如果是迴圈次數的話 是相等的
6樓:匿名使用者
你這** 輸出值的地方 你確定是c 或者 c++裡面的?不是吧 即使是 你的用法也可能是錯誤的!
改下:條件一樣 輸出的是 i的值
#include
using namespace std;
int main()cout< }return 0; }輸出結果是 1 1 3:解釋 第一次迴圈 i=0; 然後賦值給k的時候 執行的語句 int k= ++i; 這裡 i先自加 i就等於1了 然後賦值給k,k也等於1; 因為k=1 小於5 執行 while 語句 輸出i 即是 輸出1; 然後 執行k+=2;只是複合賦值語句等同於 k=k+2; k變成了 3 還是小於5 再輸出 i 第二個1 ; 在又執行k+=2; k=5了 不小於5 while 迴圈結束 第二次 for迴圈 回去執行for 語句的最後一句 i++ 執行完以後 i=2了;是小於6的 執行for迴圈裡面的語句 int k=++i;與上面語法一樣 執行完這句 i=3 k=3; 判斷while 成立 輸出 3 執行k+=2 ;k=5 不滿足條件k<5;while結束 第三次for 迴圈 執行for 裡面的 i++ ;i=4 i小於6 執行 int k=++i; i=5,k=5;不執行while 不輸出i ;執行for 裡面的i++ ;i=6 不滿足i小於6 for 結束 全部結束; 7樓:風的紀元 for(int i=1;i++<4;) 第一次,i=1 -> i<4 -> i=i+1所以在迴圈體中,i參與運算時第一次值為2,以此類推,最後一次參與運算時,i值為5 因此與for(int i=2;i<5;i++)等價 for(int i=1;i<=n;i++) sum+=i;怎麼理解 8樓:我有很多好人卡 0。開始 1。i = 1 2。如果 i <= n,然後執行3,4,53。sum = sum + i 4。i = i + 1 5。繼續執行2 其實就是求1 到 n 的和…… 9樓:匿名使用者 我想說的是這是抄個半吊子程式,根bai本做不了什麼事,也許是你du沒copy完。 zhi但是這是程式主要部分,至於daosum必須初始化為0; 可以寫成這樣for(int i=1,sum=0;i<=n;i++)sum+=i; 至於後面的sum+=i就是sum=sum+i;然後迴圈就是了!!!這個就是優先順序的問題(去看迴圈和優先順序就明白了!!!) 10樓:匿名使用者 就是求1到n的和,翻譯清楚一點就是 for(i=1;;i++)這裡面為什麼有兩個; 表示什麼 11樓:匿名使用者 for(i=1;;i++)表示i從1開始迴圈,每次遞增1,如果for中間沒有break;則一直迴圈下去。 12樓:gta小雞 缺少迴圈結束條件,需要在迴圈體內部新增判斷條件,否則會陷入死迴圈 13樓:天下霸傲 不是 中間的部分被省略了,如果不寫,就是真,往下執行就行,其實是個死迴圈 14樓:匿名使用者 第一個是i=1;第二個是i<=某個數; 15樓:匿名使用者 我早就忘了該如何開心的笑了! 16樓:水德水相亭 是等價的。 將陣列裡值s[j]賦給s[i]然後i,j都自加。 for (int i=;i<100;i++) a[i]=i+1; 這個是什麼意思????解釋的仔細點 17樓:匿名使用者 迴圈體: 迴圈控制變數i初值為?(int i= 貌似你漏寫了)迴圈條件是i<100 每次迴圈i自增1;迴圈體內意思是將a陣列的每一個賦值為當前位置+1(a[i]=i+1) 18樓:匿名使用者 for (int i=0;i<100;i++) a[i]=i+1; 你的i到底等於多少,一般都等於0吧;例如這個程式 #include void main() ;int i; for (i=0;i<100;i++)//與for (int i=0;i<100;i++) 相等 //a[i]=i+1;//給a陣列裡面的值逐個去取,取一百次; //好比當i=0時 就取陣列a[1]值,i=1時,取a[2]的值············迴圈一百次一直取到a[99] for (i=0;i<100;i++) printf("%d",a[i]);} 19樓:匿名使用者 應該是一個一維陣列的迴圈語句 當i滿足小於100這個條件 i可以一直執行i++ 然後執行a[i]=i+1 再把執行結果套入之前的迴圈 執行i++ 知道i的結果=100 中斷 20樓:匿名使用者 是不是寫錯了?i後一概由個值如果i是全域性變數就應該把等號去掉 21樓:匿名使用者 a[i] 是陣列,不過這個陣列下標是可以變化的,也就是a[0]=0+1,a[1]=1+1……,一直到a[99] = 99+1,對陣列賦值而已。 22樓:小豬宿州 不是吧,這個i沒有初值,是有問題的**,不用解釋了,你看看是不是少了 23樓:匿名使用者 i沒有初值 lz是不是**貼錯了 for(int i=1;;i++)與for(int i=1;i++;)的區別 24樓:匿名使用者 第一個可以無限迴圈下去,判斷條件沒有但是i會不斷變化; 第二個只可以進行一次;判斷的意思是i++為真也就是i不等於0的話可以進行,很明顯i不等於0,但沒有i變化的條件。 為什麼for(int i=0;i<9;i++) 在c語言中是錯誤的? 25樓:匿名使用者 標準抄c語言這樣 寫會出現語法錯誤的,如果使bai用t20,這樣寫肯定會出du錯,無zhi法編譯,正確的寫法是:在函dao數的開始申明變數,之後再使用變數,比如: void fun() 後來很多整合開發環境,是支援for(int i=0;i<9;i++)這種寫法的,不過我的建議還是按照標準的較好,這樣在任何情況下都不會出錯。 for(int i=1;i<=n;i=i*2)++x; 的時間複雜度 26樓:木子思曰 程式每執行一次,i就乘以2,但是i又是小於n的 所以2的a次方小於等於n 所以時間複雜度為log2(n) 物理先知 電阻是由導體本身的性質決定的,與導體的形狀 材料 溫度等因素有關。對於定值電阻,電壓與電流是成比例變化的,它們的比值恆定,所以電阻與電壓和電流無關。r u i只是用來計算電阻值的一個工具。 科幻怪怪 電路只分串聯和並聯兩種,儘管是混聯,混聯也是由串並聯組成。而公式類似函式,即自變數或函式的... z粽 是個後置的運算子 也就是說i 4這個條件中的i用的是自增運算前的值 再比如 int main 這樣的話,程式執行得到的顯示是 c 3 a 3 就是在計算c a b的時候a還是2的值 在語句執行完之後才進行自增哦 所以你那個語句裡,在最後不滿足i 4時,i其實是剛好等於4,迴圈執行完之後就變成5... k i i 按符號的優先順序,先計算 i,這時,i 5,再計算k i i,分子分母都是5,所以答案是1 這個和求值循序有關 c語法沒有規定運算子求值循序 除逗號運算子,邏輯運算子,條件運算子外 求值循序不同的編譯器是不一定相同的 所以表示式a b,可以理解為a加上b,也可以理解為b加上a,一般情況下...I可知,電阻與電壓成正比,與電流成反比。這句話為什麼不對
執行語句 for i 1 i4後,變數i的值是
i 4 j 3 k 1,為什麼kii printf k d n nk輸出 k