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...