鱼C论坛

 找回密码
 立即注册
查看: 1011|回复: 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
if(scanf(...))
{
      if(....)
     {
        .....
      }
      else if(....)
      {
          ....
      }
      .....
/*else
{
....
}*/
return 0;
}
printf(ERROR);
return 0;
FB3_PUSAE4E{%8J0WMAIP.png
@WX@V8U@S6IW`3Y}{(F1DX7.png

最佳答案

查看完整内容

scanf的返回值,非法返回0,否则返回输入的个数 注意:”123f“它也认为是合法的,返回值不为0,获取值是123.而”f123“返回值是0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

scanf的返回值,非法返回0,否则返回输入的个数
注意:”123f“它也认为是合法的,返回值不为0,获取值是123.而”f123“返回值是0
if(scanf(...))
{
      if(....)
     {
        .....
      }
      else if(....)
      {
          ....
      }
      .....
/*else
{
....
}*/
return 0;
}
printf(ERROR);
return 0;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 17:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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