c語言for迴圈問題,c語言 for迴圈問題

2022-06-09 20:26:53 字數 6404 閱讀 2095

1樓:匿名使用者

你的for迴圈用錯了,for的三個引數第一個是賦初值,第二個是迴圈條件,第三個是增值。你的迴圈條件沒有給,並且就算寫對位子你的條件好像也錯了,按你的意識是大於10就退出,但是你的迴圈條件是「||」,這是「或」。也就是滿足一個條件就進行迴圈,當你輸入10的時候大於了1,那麼迴圈就可以進行。

所以你應該是用「&&」,用「且」。這樣就可以了

2樓:

for (a>1||a<10;;)

改成:for (;a>1||a<10;)

這樣兩個比較才是迴圈條件部分

a最好初始化,或是先輸入一次。

3樓:馬拉古城

你輸入的是a>1或a<10,當然輸入10還在迴圈,我想你的意思是00&&a<10;),這樣就ok啦

而且for的用法你也弄錯了,for(?1;?2;?

3),在?1中是賦初值的,在?2中,是寫迴圈條件的,在?

3中,是寫執行迴圈後的操作,相當於在for語句的末尾加的一個語句。

如果這對你有幫助,請贊個,或採納,感激不盡

4樓:

for (a>1||a<10;;)中的a>1||a<10在a>1時永遠這「真」,且位置寫錯了應該在寫在兩個分號之間。要達到你的目的,還要將||改成&&才行……

5樓:

因為你的寫的for語句就是錯的,for中的倆個分號你看看,是不是那樣的,你把a>1||a<10寫成了初始化的的條件 了,#include

int main()

printf("溢位");

return 0;

}看看這個。。。

而且你的a如果不給他賦初值看看他的初始值多少。

6樓:

for (;a>1||a<10;;)

你這樣試試看,

剛才你那種寫法是初始化i,不是判斷

7樓:

**略有問題:

1,a沒有初始化;

2,迴圈沒有結束條件,即for(e1;e2;e3)裡的e2處沒有結束判斷條件,這樣的話如果迴圈內部沒有break和跳轉程式必然死迴圈;

3,「為什麼我輸入大於10了還在迴圈內」,你的意思是在a小於10而且大於1時才執行迴圈,可**中確是a大於1或小於10時執行迴圈體,顯然只要a是int型,必然始終滿足條件;

所以,**應修改為:

for (a=2;a>1&&a<10;)

8樓:

for (a>1||a<10; ; )死迴圈。中間無條件,恆真。

for ( ;a>1||a<10; )也是死迴圈。因為a>1||a<10恆真

9樓:hdu我愛c語言

(a>1||a<10) 這個明顯有問題的麼,只要一個成立就行,那麼每個都能成立 的

要麼把條件改成a>1&&a<10。

||這個是邏輯或,就是隻要一個條件成立就行,你的a>1||a<10 明顯對於每個數值a 都能成立的,所以迴圈條件錯了,這樣就是一個死迴圈了。

10樓:匿名使用者

for (a>1||a<10;;)

換成for (;a>1||a<10;)

11樓:

哈哈for (;a>1||a<10;)

這樣就行了。判斷條件要在第二個分號那裡。

12樓:tpy家族

因為你的邏輯錯了,在c語言裡||是或,只要有一個成立就執行,你應該改成&&

c語言while迴圈的問題是什麼?

13樓:匿名使用者

意思是如果a 為真,則執行while中的迴圈體!

(a)為迴圈條件!但是個死迴圈!因為沒有辦法確定a 的值為真還是為假!

寫個例子吧!

int a=0;

while(a<5)

當a=0時,判斷a<5為真!執行迴圈體!

這個迴圈體共執行5次!即執行5次a++

可以執行一下看看每次都是什麼效果!可能能加深你對迴圈的理解!

希望對你有幫助!

c語言for迴圈的迴圈體問題

14樓:林夢嫣

不是的,迴圈條件結果為false的時候就不再執行迴圈體了。也就是說,for迴圈最少只執行兩個語句,一是初始化語句,二是迴圈條件判斷語句。

15樓:阿四哥

c語言的陣列概念的學習,通過for迴圈輸出列印陣列

c語言for迴圈問題

16樓:匿名使用者

從for語句的這種用法++寫在前面和後面沒有區別, 作為迴圈最後執行的語句,先加和後加都是加,不影響最終a的取值, 在下次迴圈條件判斷執行前, a的值都保證已經加1了.

b=a++; 相當於b=a; a++;

b=++a; 相當於a++; b=a;

迴圈執行順序是:

a=0;

判斷a<5成立, 開始迴圈 (如果不成立, 直接退出迴圈)執行迴圈體一次

a++; //或者++a;

a<5成立, 執行迴圈體一次

a++;

...a<5不成立, 結束迴圈

17樓:風火輪

這兩個for迴圈執行完畢後得到的結果完全相同。雖然說a++是先取值再自增,++a是先自增再取值,但這是相對於賦值語句而言的,例如x1=a++,x2=++a,這兩句就是完全不同的結果。在for迴圈中,表示式3的a++和++a完全等效,因為表示式3的語句可以單獨提出來,放到迴圈體的最後一句單獨執行,也就是說下面四個形式完全等效:

for (a = 0; a < 5; a++)*************************for (a = 0; a < 5; )

*************************for (a = 0; a < 5; ++a)*************************for (a = 0; a < 5; )

另外由於a是定義在for迴圈以外的,所以題中兩個a並不獨立,它們用的是同一個變數,取自同一個地址,但由於兩個for迴圈都有表示式1:a=0,都對a做了初始化操作,所以兩個迴圈不會相互影響。

18樓:a葰汰

簡單的for迴圈程式如下:

for(int i=0;i<20;i++)執行步驟是:

1、i=0 初始化初值;

2、 進行條件判斷i是否<20,如果條件為真,則繼續執行;

3、執行迴圈體的**;

4、i++ 變數i自增一次;

5、回到第2步,一直迴圈,直到第2步條件為假時, 退出迴圈,結束。

19樓:匿名使用者

這兩個for輸出應該是一樣的

第一次執行a=0 a<5

第二次執行a++或++a

結果都是01234

c語言迴圈問題

20樓:千鋒教育

float result = 1;

int flag = 0;

for(int i = 2; i <= 20; i++)

21樓:金色潛鳥

#include

int main()

printf("sum = %f\n",sum);

return 0;}

c語言for迴圈的問題?

22樓:匿名使用者

#include

int main()

printf("%d\n", c);//輸出迴圈次數!!

return 0;}

23樓:卷誠之意

呵呵從來沒有看到過這種情況,for迴圈裡面只可能有三個表示式,而且只可能出現二個冒號

他可以是這樣的寫法

for(inti=

0,j=1;i

<=10;i++,j++)

一個表示式裡面可能帶多個引數

24樓:王勃啊

這個程式說的是3x+1問題,

迴圈是不知道何時終止的。

比如一個起始數字 5,接下來16,8,4,2,1如果n>1只是一個終止條件的判斷,只要還未到1,就繼續這個迴圈。

而c不過是記錄經過多少步才使得這個數變為1.

25樓:蝸牛要奔跑

n>1可以解釋,因為n>1僅僅是作為迴圈的判斷條件,後面輸出的c與迴圈裡面的演算法有關係,c是要迴圈幾次! 說實話,我真沒有看懂你這個是要幹嘛或者說你這個**是要做什麼?難道是:

輸入一個數經過if /else條件幾次變換能變成1?

26樓:

中間只是迴圈是否繼續的判斷條件,不要求必須是c。

最後輸出c,是表示運算了多少次。

這個程式就是 你輸入一個 數。如果對2取餘=1,那麼他就乘3再+1。

否則 這個數 除 2

直到這個數最後變成1。

在這個過程中,運算了多少回就是列印的值

27樓:天_涯明月

for迴圈中,for(表示式1;表示式二;表示式三),語法本身並沒有表示式的約束。一般表示式一用來初始化,在迴圈前,會執行一次。表示式二用來做迴圈條件,若表示式為真,則進入迴圈,否則跳出迴圈。

表示式三用來做迴圈變數的改變。比較常用的形式是for(i0;i<100;i++)。

就本題來看,是n>1用來做迴圈條件。

2.    c在本題中是用來記錄迴圈體執行次數的,輸出c可以得到n計算的次數。

。。手打望採納。。

28樓:匿名使用者

c = 0;

while(n>1)

printf("%d\n",c);

這樣寫,可能你看得清楚點。。。

c語言for迴圈的問題。

29樓:匿名使用者

一個偽**告訴你真相

我是大圈

一圈跑完,大圈還要跑嗎(要跑:繼續大圈與小圈的迴圈,不要跑:跳出迴圈)

}多層巢狀也是一樣

我是外圈

跑完了小圈,繼續中圈(中圈已結束:跳出中圈繼續執行外圈。中圈還沒結束:繼續中圈的迴圈)

}現在中圈也跑完了,再來跑大圈(如果大圈跑完了,該迴圈結束,還沒有的話繼續上面的奔跑,running man!)

}嘿嘿,我就是喜歡這種有意思的教學方法。

30樓:匿名使用者

這道題的本質就是0.1x+0.2y+0.5z=10其中x的取值範圍是少於等於10/0.1

y的取值範圍是10/0.2

z的取值範圍是10/0.5

因為最多也就這麼多張,不然就大於10元了

自然xyz都要大於0

所以三個迴圈巢狀就是窮舉這些情況,從有0張一角,0張2角,0張五角開始,然後是0個1角,0個2角,1個五角開始,慢慢的窮舉,一直找到配比正好是10元的情況。

31樓:逆問

遍歷1角至x元有x*10種可能

遍歷2角有x*5種可能

遍歷5角有x*2種可能

當有1個一角,1個二角的時候,

遍歷判斷是否有五角的個數n使得1*1+2*1+n*5=x*10,即one+two*2+five*5=x*10

存在n就列印

當有1個一角,2個二角的時候,

遍歷判斷是否有五角的個數n使得1*1+2*2+n*5=x*10,即one+two*2+five*5=x*10

存在n就列印

...當有2個一角,1個二角的時候,

遍歷判斷是否有五角的個數n使得2*1+1*2+n*5=x*10,即one+two*2+five*5=x*10

存在n就列印...

32樓:bd丶文子

先從第一層for開始判斷,進入到最裡層的for並迴圈。跳出後判斷上一層for,正確,再迴圈最裡層,反覆直到上一層跳出再進行判斷上上層,依此類推。

33樓:

不屬於迴圈條件,是表示式,先執行括號裡的前兩個表示式,再計算括號外面的,第三步返回括號執行i++.實現i的自加。sum=sum+i意思是累加,實現從1加到100所有數之和,即把1+2+3+。。。。

100的值賦給變數sum

34樓:都桂花黎姬

被呼叫函式裡,實現字元的交換,將字元按照字母表順序排列,第一個for迴圈裡計算字元陣列的最大下標,因為陣列元素的下標是以0開始的,所以最大下標i=strlen(t)-1,第二個for迴圈是利用冒泡法將字元進行排列,所以是ji時,跳出第二重for迴圈,i--,變成i=strlen(t)-2,重新執行,此時第二個for迴圈裡j=0了。

關於c語言for語句的問題,關於C語言for語句的問題

這兩個程式是不同的,for語句在不加大括號情況下只迴圈到之後的一個分號,即前一個程式迴圈體包括printf 輸出為1234 後者迴圈體中不包括printf 執行完for語句後,再執行printf 輸出為5。第一個for迴圈的迴圈體內有一條語句,那就是printf,每次迴圈都要執行一次迴圈體內的語句,...

c語言for迴圈輸出問題,C語言 for迴圈輸出陣列的問題

include include typedef int elemtype typedef int status typedef struct lnode lnode,linklist 如果i小於1或者大於表長加1,則返回error if p j i 1 s linklist malloc sizeo...

c語言for迴圈執行步驟,C語言 for迴圈執行步驟

簡單的for迴圈程式如下 for int i 0 i 20 i 執行步驟是 1 i 0 初始化初值 2 進行條件專判斷i是否 20,如果條屬件為真,則繼續執行 3 執行迴圈體的 4 i 變數i自增一次 5 回到第2步,一直迴圈,直到第2步條件為假時,退出迴圈,結束。開啟嗶哩嗶哩,搜尋 詳解c語言之f...