回覆列表
  • 1 # IT瘋子也

    這個很簡單。

    輸入應該為:5,6,65,66

    而樓主在這裡不知是加了多餘的空格還是用的中文逗號。

    總結:sanf()的用法就是要格式一樣,程式碼裡面用逗號、下劃線隔開,輸入時也要相同的格式隔開,不能多不能省。程式碼裡面用空格隔開或者不隔開,輸入時都必須用空格隔開,不能用省或者其他字元。

  • 2 # EXCEL進階課堂

    題主,你好。有你的問題來看,你應該是C語言的初學者。同時你也是一個很愛鑽研和問原因的人。相信你保持這樣的狀態的話,很快你的C語言就能入門了。

    你出現的這個問題,也是我的學生經常會出現的問題。我就從問題原因和解決辦法兩方面講一下。

    第一:問題原因分析

    首先請你觀察你問題配圖當中的兩個地方:他們都是逗號,這兩個逗號有什麼不一樣的嗎?

    第一行的逗號:是你輸入的逗號,看上去所佔位置是不是要寬一些?

    第二行的逗號:是程式碼中輸出的逗號,看上去所佔位置是不是要窄一些?

    為什麼有這樣的區別呢?因為你在輸入的時候,逗號是在中文輸入法下輸入的。

    這樣輸入會有什麼問題呢?

    英文狀態下輸入的逗號佔1個位元組,而在這裡輸入的中文逗號佔2個以上的位元組(與編碼形式有關)。正是這個原因,造成了問題的出現。

    請看對你輸入的重演:

    第二:問題解決辦法

    轉換輸入法,在英文狀態下輸入相關資訊即可。

    切記:在程式設計當中,除了你想顯示出來的中文之外,其它的符號一定是在英文半形狀態下輸入。這是基礎。

    如是你覺得我回答對你有用,請關注 嚴sir課堂,同時,如果你想從基礎開始學習C語言,更要 關注 嚴sir課堂。

  • 3 # C語言答疑課堂

    題主這個問題問的很好的。因為你是用scanf函式讀取字元,如果字元之間用逗號隔開,那麼scanf函式就會讀取逗號了,因為逗號也是字元啊。

    就像題主的第一張圖,用逗號分隔開,那麼變數a的值是字元“6”,變數b的值就是逗號了!

    scanf函式給你造成的坑遠不止題主的這個問題。在C語言中,使用scanf函式和getchar時,如果緩衝的換行符沒有處理好,程式執行可能會有異常或者閃退等現象。我專門寫了一篇文章來解釋這個現象,有興趣的可以查閱下述連結:

    https://gitbook.cn/m/mazi/activity/5b35f1292dbf944d53f6f06b

  • 中秋節和大豐收的關聯?
  • 如果明天意外來臨,你最大的放不下是什麼?