1樓:匿名使用者
當你輸入一個字元,如:'a'時,此時'a'並不是一個符合scanf格式化的一個輸入,因為格式化要求輸入一個整數,此時程式進入下一個迴圈,由於上次的'a'並不符合格式化輸入,所以'a'被緩衝,放到下一個scanf輸入中,此時'a'又不符合規定,就進入下一個迴圈,這樣就形成了死迴圈。
getchar();是從標準輸入裝置讀取一個字元,執行它後緩衝區內就沒有東西了,scanf()就可以正常工作了。
getchar()的標準使用方法為:xx=getchar();讀取的字元裝入xx字元變數。
如果只用getchar();作用讀取從鍵盤或鍵盤緩衝區輸入的字元常量。
2樓:匿名使用者
那個getchar是為了去掉上面一行 scanf最後輸的回車 不過有沒有這行都不會影響程式的執行
只會對scanf %c產生影響
3樓:
getchar不賦值給任何變數,前一行的scanf會把值賦給n
4樓:
就是從0開始的,v[0]是第一個元素,v[n-1]是第n個元素
幾道C語言的問題,有關c語言的兩道問題
1 邏輯與 的問題。右邊y 1是賦值函式,永遠為真,所以左邊x 1為真時,迴圈繼續。所以當x 2時就不滿足了。此時y 1經過y 後就為0了。所以a 2 這一題很簡單,j 10進入迴圈體,滿足10 3為真,所以會進行3次 後j 7,輸出7,然後進行for迴圈的j 此時j 6,然後滿足j 3,繼續迴圈,...
有關C語言整型變數的問題知道的請進
沒錯的啊,在我的機器上執行是17.5 雖說這條int unit price 350l 有點問題,但350l賦值給unit price會自動轉化過來的。我用的是vs.net 2005。看來應該是系統環境有關吧,你去掉l看有沒問題看看。int unit price 350l這裡己錯了.長整數350l和基...
c語言!!求助,C語言求助!!!
沒什麼問題,兩題給出的答案都是正確的。第2題 後面按c語言要求帶上規定的字元或數字,構成轉義字元,因此要想將 賦給字元變數ch,需要定義為 ch 而不是ch 選項a是錯誤的。其餘選項都是正確的。選a第9題 011表示八進位制數,轉為十進位制數是9,執行printf語句,a,是a先自增1 9 1 10...