初學者,不知道哪裡出問題了,希望可以幫幫忙。


雙引號是字元串兒,單引號裡面是字元 比如 『0』其實是 48 (查 ascii 表)。

還有 格式化輸入 的格式 要和 被賦值變數對應 你用 %d 整數格式 賦值給浮點數 肯定不行啊。。 不過這類錯誤 編譯器應該有警告的。。。


在case 後面加了單引號表示的不是數字,將單引號刪了之後再試試


謝邀。

初學C語言一定要注意 單引號和雙引號的區別。

case 後面數字不能用單引號的。

單引號代表字元,雙引號代表字元串,是不同的常量。

我的公眾號里有詳細的C語言教程,歡迎關注,白嫖彩色教材,它不香嗎?

公眾號:krun55(是krun呀)

歡迎關注。


score 不必用float 型的,和後面的scanf對應不上。其次switch的語法好好看看(其他回答)。

其次,編程字體為啥用這種的,看著難受。

初學時,可以試試怎麼調試,程序都比較簡單,單步走下,對比下自己的預測,應該能很快發現問題。


其實問題蠻多的,首先是輸入問題,你的score是float型的,那你的scanf裡面就不應該用%d(int型),而是應該用%f(float型),然後就是要在scanf裡面的score前面加上一個取址符,所以那句應該寫成scanf("%f",score);

然後就是a=int(score/10);如果是強轉(int型的話),你應該寫成a=(int)(score/10),但其實也沒必要你直接a=score/10,a也只會等於score/10的整數部分;

還有就是case後面的問題,這個,你去掉單引號就可。

應該就這些問題了。


除了其他答主指出的地方外,我覺得在數據類型轉換上也出了問題

強制類型轉換的格式是(int)score,即將float型的score變數轉換為int型

另外,題目說分數都是整數,所以score直接用int型就好了……

另另外,編輯器換個字體吧……這個字體看著真的難受

附跑通了的代碼圖(手機回答懶得複製粘貼了)


最主要的問題是scanf括弧里的score前面要加

另外不規範的地方太多了,比如明明是float類型,你用%d,還有case後面不要引號,引號是字元還有給a賦值的時候不要寫int


scanf("%d",score)

忘記加符號了


scanf函數後面傳一個地址要用


推薦閱讀:
相关文章