鱼C论坛

 找回密码
 立即注册
查看: 1210|回复: 1

[已解决]百分之成绩转换程序,如何在输入非法字符(不为数字)的情况下,打印error?

[复制链接]
发表于 2021-10-19 23:31:46 | 显示全部楼层 |阅读模式
10鱼币
请问这个题目(第一张)怎么改呢,关键是想要在:输入非法字符的情况下,打印error。
萌新实在不会,改成了第二张图这样,但是输入的只要不是数字,不管是什么非法字符,A,O,&,%一类的,输出的永远都是grade E。
打开监视窗口,发现非法字符好像是输出不进score里,score一直是系统分配的初始值8,所以总会打印出E。
请问该怎么修改呢,求救
最佳答案
2021-10-19 23:31:47
本帖最后由 jhq999 于 2021-10-20 07:39 编辑

scanf的返回值,非法返回0,否则返回输入的个数
注意:”123f“它也认为是合法的,返回值不为0,获取值是123.而”f123“返回值是0
  1. if(scanf(...))
  2. {
  3.       if(....)
  4.      {
  5.         .....
  6.       }
  7.       else if(....)
  8.       {
  9.           ....
  10.       }
  11.       .....
  12. /*else
  13. {
  14. ....
  15. }*/
  16. return 0;
  17. }
  18. printf(ERROR);
  19. return 0;
复制代码
FB3_PUSAE4E{%8J0WMAIP.png
@WX@V8U@S6IW`3Y}{(F1DX7.png

最佳答案

查看完整内容

scanf的返回值,非法返回0,否则返回输入的个数 注意:”123f“它也认为是合法的,返回值不为0,获取值是123.而”f123“返回值是0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-19 23:31:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2021-10-20 07:39 编辑

scanf的返回值,非法返回0,否则返回输入的个数
注意:”123f“它也认为是合法的,返回值不为0,获取值是123.而”f123“返回值是0
  1. if(scanf(...))
  2. {
  3.       if(....)
  4.      {
  5.         .....
  6.       }
  7.       else if(....)
  8.       {
  9.           ....
  10.       }
  11.       .....
  12. /*else
  13. {
  14. ....
  15. }*/
  16. return 0;
  17. }
  18. printf(ERROR);
  19. return 0;
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 00:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表