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