Lacia 发表于 2021-10-19 23:31:46

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

请问这个题目(第一张)怎么改呢,关键是想要在:输入非法字符的情况下,打印error。
萌新实在不会,改成了第二张图这样,但是输入的只要不是数字,不管是什么非法字符,A,O,&,%一类的,输出的永远都是grade E。
打开监视窗口,发现非法字符好像是输出不进score里,score一直是系统分配的初始值8,所以总会打印出E。
请问该怎么修改呢,求救

jhq999 发表于 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;
页: [1]
查看完整版本: 百分之成绩转换程序,如何在输入非法字符(不为数字)的情况下,打印error?