初学者,不知道哪里出问题了,希望可以帮帮忙。


双引号是字元串儿,单引号里面是字元 比如 『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函数后面传一个地址要用


推荐阅读:
相关文章