for int i 1 i4 這句話為什麼等價於for int i 2 i5 i

時間 2021-10-17 05:11:04

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)

I可知,電阻與電壓成正比,與電流成反比。這句話為什麼不對

物理先知 電阻是由導體本身的性質決定的,與導體的形狀 材料 溫度等因素有關。對於定值電阻,電壓與電流是成比例變化的,它們的比值恆定,所以電阻與電壓和電流無關。r u i只是用來計算電阻值的一個工具。 科幻怪怪 電路只分串聯和並聯兩種,儘管是混聯,混聯也是由串並聯組成。而公式類似函式,即自變數或函式的...

執行語句 for i 1 i4後,變數i的值是

z粽 是個後置的運算子 也就是說i 4這個條件中的i用的是自增運算前的值 再比如 int main 這樣的話,程式執行得到的顯示是 c 3 a 3 就是在計算c a b的時候a還是2的值 在語句執行完之後才進行自增哦 所以你那個語句裡,在最後不滿足i 4時,i其實是剛好等於4,迴圈執行完之後就變成5...

i 4 j 3 k 1,為什麼kii printf k d n nk輸出 k

k i i 按符號的優先順序,先計算 i,這時,i 5,再計算k i i,分子分母都是5,所以答案是1 這個和求值循序有關 c語法沒有規定運算子求值循序 除逗號運算子,邏輯運算子,條件運算子外 求值循序不同的編譯器是不一定相同的 所以表示式a b,可以理解為a加上b,也可以理解為b加上a,一般情況下...