初學者,不知道哪裡出問題了(C語言)?
初學者,不知道哪裡出問題了,希望可以幫幫忙。
雙引號是字元串兒,單引號裡面是字元 比如 『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函數後面傳一個地址要用
推薦閱讀: