C語言迴圈體內的輸出是怎麼工作的?為什麼最後才全部輸出

2022-12-30 07:11:05 字數 3267 閱讀 7107

1樓:

是這樣子的,就是你輸入一系列以後回車,然後再逐個輸出你輸入的。它是先存入一個輸入流中,然後再逐個輸出。

像你也可以一次性輸入多個,但是隻有一個printf,所以他只輸出第一個,明白嗎?你可以試著搜一下輸入輸出流檢視一下更詳細的。。。。

2樓:牧野

這段**本來就是迴圈一次輸出一次。

3樓:董俊錕

肯定是一次輸出一個,只是速度太快你覺得一下全部輸出,給你程式加一點東西你就知道

在while迴圈體內加一條

sleep(1000);

(休眠函式)你就會看到是怎樣輸出的,希望對你有幫助補充一下

#include

#include

main()}

4樓:

他們都理解錯了,根本不需要加什麼sleep。。。你這**本來就是輸入一次就輸出一次,不會輸入很多次到最後才全部輸出。。。你是不是一次輸入好多個數值,然後每個數值以空格隔開?

或者是跟編譯器有關。。。你換一個試試

5樓:匿名使用者

你這裡也就一條列印語句,每迴圈一次就會列印一次。在while迴圈體裡面加上sleep();函式 你就能看到效果了,延時多長時間 你就隨便試試 ,比如sleep(1000000);

c語言中,當迴圈三次,是輸出最後一次的結果還是全部輸出?急急急

6樓:

while 滿足條件就迴圈

然後看裡面是否有輸出語句

如果有輸出語句

應該是全部輸出把

c語言迴圈中可以輸出最後就無法輸出 5

7樓:寂靜深闌斜

第一位回答你的朋友已經點出來了,很可能是你這段**執行到while迴圈時,因為執行條件成立,所以一直在執行while迴圈內的輸出語句,沒有跳出迴圈執行最後的輸出b。你要把while迴圈執行條件改下以保證跳出迴圈(eof是檔案末尾標識,例如txt檔案,你應該是用鍵盤輸入的,所以檢測不到eof就跳不出迴圈)。

8樓:風格個性

while 滿足條件就迴圈然後看裡面是否有輸出語句如果有輸出語句應該是全部輸出把

9樓:岔路程式緣

把eof改成0試一試。

c語言迴圈結構中是輸出累計的結果還是輸出最後一個結果

10樓:匿名使用者

要想輸出一個結果,就要判斷,如果再迴圈中條件滿足了,就輸出結果,否則跳出迴圈之後才輸出。

11樓:匿名使用者

看迴圈裡是什麼東西,如果每個迴圈裡都有輸出語句的話,那就是輸出每個迴圈執行的結果,如果只有在迴圈外有輸出語句,那就是輸出迴圈完的結果!主要還是仔細看題!

12樓:梧桐

for(i=0;i<=3;i++)

執行結果為 0 1 2 3

for(i=0;i<=3;i++)

printf(" %d",i); //迴圈結束後輸出一個結果,即輸出最後一個結果

執行結果為: 3

兩個區別在於你是否吧輸出語句放在迴圈體中

13樓:建築學周偉

主要看for迴圈的作用範圍,看有木有打大括號。

c語言中,for迴圈中同樣最後輸出一個數,比如說根據條件12345,為什麼有時輸出12345,而有時輸出15呢

14樓:匿名使用者

根據你這個程式,從主函式看起,當做到for迴圈時,呼叫fun()函式,並且一共呼叫5次,而fun()函式每次都返回t的值,而t又是靜態的區域性變數(前面加了static),靜態變數在每次呼叫之後不釋放,而是保留上一次呼叫的值,比如當x=1時,呼叫fun(1),此時t=t+x,就等於1,當下次呼叫fun(2)時,t的初值值就是1了,而不是2,當for迴圈的五次呼叫結束之後再輸出s的值。

15樓:

不知道你問的是上什麼。只有幫你分析一下了

上面的程式,變數t為靜態的(static),只被定義一次,相當於計數器的功能,即上面的程式實質是求1 + 2 + 3 + 4 +5 = 15

下面的程式

求矩陣的下三角

(1 2 3

4 5 6

7 8 9)

即:b[0] = 7 + 3 = 10

b[1] = 8 + 6 = 14

b[3] = 9 + 9 = 18

16樓:匿名使用者

你這個程式應該不會輸出 12345 只會輸出 15 因為你的for迴圈只重複做 s=fun(i) 這行

最後在做 printf("%d\n",s) 所以輸出 15 ,所以不懂為什麼你執行出來會這樣

如果要輸出12345的話程式main的部分要改成main()

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

}這樣就會印出12

34515

17樓:秋啾兒

把你**粘上來吧,你這麼說,除非出過同樣問題,否則很難有結果......

c語言問題(為什麼無限迴圈,而且最後輸出的e,t,time都為0)

18樓:

先指出幾個問題:

for(int t=0;t<=time;t=t+dt)——t是整型,dt是浮點型,當dt<1時t=t+dt是不會增值的,因為一個浮點數賦給一個整型數時只取整數部分。比如t=1,dt=0.3,執行t=t+dt的結果是t永遠是1。

printf("%d\n",e);——e是float型,而控制符卻是%d,這樣輸出永遠是0。

printf("%d\n",time);——與2一樣,time是float型。

c語言迴圈語句.b為什麼只輸出一次?

19樓:聽不清啊

有點不太清楚,這個程式是用來做什麼的?

從程式上看,應該是這個b會輸出多次的,問題是你這裡輸入的n是什麼?這是有講究的。

如果輸入的數字n是等於3,那麼他計算的是a就是等於10的3次方,然後二重迴圈就是窮舉所有的三位數。但是這裡的c陣列是用來做什麼的?計算了以後下一回又重新改寫,完全沒有作用。

所以,請重新編譯一次,以後再執行,把輸入的n是幾,然後輸出的b等於幾說一下,再來分析他出錯的原因,就比較方便了。

C語言for語句的迴圈體可以省略嗎

可以,不過要加上大括號,中間沒有 否則下一行 將被看作是for的迴圈體 c語言中for語句中的迴圈體至少執行一次嗎?不是的,迴圈條件結果為false的時候就不再執行迴圈體了。也就是說,for迴圈最少只執行兩個語句,一是初始化語句,二是迴圈條件判斷語句。是do while語句。它的一般形式為 dowh...

怎麼用c語言中for迴圈輸出數列 1,1,2,3,

一樓的演算法沒有問題.但程式並不完美.比如n應由外部輸入,並判斷合法性.節省儲存空間,結果直接輸出.include void main 這是fibonacci數列,在c語言書上有介紹的 你把數列的公式算出來,然後用c語言表示出來。這個函式遞增很快,輸入的num不要太大,23以下就好 include ...

c語言中for迴圈後輸出的多組數字怎麼相加

1,放到一個陣列中,迴圈完後相加 2,在迴圈中相加 int sum 0 for int i 0 i 100 i 最後的sum就是相加的結果 c語言中迴圈輸入多個數後,如何把輸入的數全部輸出 再用一個抄迴圈挨著輸 襲出每個數即可。例程bai du include include int main pr...