請教c語言輸入問題,請教一個c語言輸入問題

2022-05-07 23:07:50 字數 1270 閱讀 1511

1樓:匿名使用者

因為你向a輸入一個字元後( scanf("%c",&a); 就是這個句子 ),要按一下回車,而回車也是字元,於是第二句 gets(b);就把回車給吃進去了……也就是你說的『\0』,然後程式就執行到gets(c);這一句了。。。

記著,回車也是字元就是了。。。ps:c語言很萌的。。。

2樓:匿名使用者

gets 從標準輸入流中讀取字串,直至接受到換行符或eof時停止。scanf從標準輸入流讀取字元後,換行符被gets(b);讀取,gets(b)得到換行符不會儲存,用一個結束符表示這一行讀完了。

如果需要的話,lz可以多寫一行gets(),來讀取多餘的換行符,或者在gets(b)之前用flush()來沖洗標準io流

3樓:聖安一月

gets()能讀入空格。

不如換成scanf("%s",&b)吧,這個可以跳過前置空格...

4樓:

scanf("%c%*c",&a); //讀取一個字元,並丟棄隨後一個字元

5樓:匿名使用者

\n還在緩衝區 清空緩衝區就可以了

6樓:匿名使用者

你的寫法就不對啊。

迴圈的那個地方。

for(j=0;j<9;i++)

for(j=0;j<9-j;i++)

錯了應該是for(j=0;j<10;j++)for(i=0;j<10-i-1;i++)注意 i 和 j 啊。

還有 迴圈啊,你要用 {}括起來啊,不然你到底要 人家迴圈個什麼東西呢。編譯器只會迴圈for語句下的第一句話,如果有多句話要用括號。

不能輸入能放入迴圈前面,是因為你要輸入10個數字啊,所以就迴圈10次,讓你 分別輸入10個數字,至於為什麼要用空格,不能用回車,不是那麼回事,回車也是可以的。因為資料都是放在記憶體裡面的, 空格 和 回車 都相當一個分隔符,編譯器會認為分隔符兩邊的是兩個資料。

當然要一個一個輸入了,不然你想怎麼樣,我寫成這樣你知道我輸入的是什麼嗎?1234342738943212313217892,怎麼,你看出來我輸入了哪些數字嗎,連人都不認識,你讓一個機器怎麼認識,是嗎。

下面這個是我改寫的**,可以實現。

int main()

}printf("the sorted numbers:\n");

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

printf("%d",a[i]);

printf("\n");

return 0;}

請教c語言中double問題,請教一個c語言中double問題?

20 3是兩個整型常量進行運算,結果進行了取整 改為d 20.0 3.0 這是型別轉換的問題。首先 20 3,系統會認為這是整形資料的運算,得出的結果為6,然後將整型資料賦給實型資料,就會將整型資料強制轉換為實型資料。故輸出結果為 6.000000 樓主你同時也犯了一個錯誤,計算機所有實型資料是以二...

C語言問題請教

選c 不知道對不對 呵呵 func2 int i 是函式呼叫 char st hello,friend 是字元陣列這個很難解釋 教材上有的 選c程式首先呼叫func1 i 輸出st 0 即h,然後判斷 i 0 3,執行i 2 i變成2,呼叫func2 i 輸出st 0 即l,然後判斷 i 2 3,執...

C語言請教大家順序查詢的問題,C語言 請教大家一個順序查詢的問題

除了以上兩位說的以外,你的迴圈還有問題 while i n list i key 你的迴圈條件是list i key,即當list i key是執行迴圈既然list i key了,又怎麼可能有if key list j 對不?你輸入的數本身就是n個,所以不存在i n的條件,而且既然規定了總共就n個數...