有關C語言執行結果的問題

時間 2022-03-31 11:00:01

1樓:風雷九州

要說明白這個問題,就要講到輸入輸出流的概念。

c語言的輸入和輸出都是在一個緩衝區裡面進行,c語言碰上scanf會先檢查輸入流,如果為空,則提示要求使用者輸入,使用者一直輸入直到敲完回車,然後將所有的輸入都送給輸入流,由程式處理。如果不為空,則直接從輸入流處理。

來看看樓主的輸入。scanf第一次執行,要求輸入兩個%d的型別,開始等待使用者輸入。先輸入1回車,輸入流裡面就是1回車,賦值給了第一個變數a,跳過回車符,再檢查發現為空,則繼續要求輸入。

再輸入1回車,輸入流裡面就是1回車,賦值給了第二個變數b,結束。注意,這個時候輸入流裡面還有一個回車符。

第二個scanf,要求輸入一個%c的型別,檢查輸入流,發現還有一個回車符,就是需要的型別,直接讀入,然後結束。

所以不會要求再輸入了。

如果想要輸入的話,最好清空重新整理一個輸入流,就可以了。

char c;

fflush(stdin); //強制清空輸入流

scanf("%c",&c);//程式執行時我沒有輸入自己就把執行結果蹦出來了;

c語言執行結果為神魔是0而不是,c語言執行結果為神魔是0 而不是

你的程式應該是這樣吧 if a b else if a 0 printf d n b if a 裡面 a 0 所以判斷if a 0 由於a 1,所以這個if判斷為false,不執行大括號裡面的語句。所以直接輸出printf d n b 因此結果為0.int a 1,b 0 if a xx else ...

有關C語言的小問題,C語言報錯的問題?

line 69 函式showarr,parr是指向結構體的指標,你這裡要訪問的應該是它的成員陣列parr pbase void showarr struct arr parr ps1 這個問題在編譯階段通常會有警告的,因為printf格式符 d是整數,你給的parr i 跟它是不匹配的,會引起 fo...

c語言錯誤問題,c語言執行出錯什麼原因

xzx.c 6 error c2143 syntax error missing before type xzx.c 7 error c2065 p undeclared identifier xzx.c 7 warning c4047 int differs in levels of indire...