解题思路:
主要是输入错误字符的处理。
注意事项:
scanf函数的返回值是整型,由题可知,当K等于3时,一定是输入了问号。如果不将问号清除的话,后面从键盘输入的所有数据将无法读取。
使用getchar()函数读取一个字符ch后,此字符将自动在缓冲区中被清除。【因为第一个输入的数据是整型数据,所以回车不用读取,回车不影响输入读取】
参考代码:
#include
main()
{
char ch;
int a,b,c,k,score=0;
while(~(k=scanf("%d%c%d=%d",&a,&ch,&b,&c))){
if(k==3) getchar(); //去掉缓冲区的错误字符
else if(ch=='+' && c==a+b) //合并简化代码
{
score++;
}
else if(c==a-b) score++;
}
printf("%d\n",score);
return 0;
}
0.0分
4 人评分
C语言程序设计教程(第三版)课后习题8.9 (C++代码)浏览:919 |
C语言训练-求素数问题 (C语言代码)浏览:989 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:597 |
C二级辅导-公约公倍 (C语言代码)浏览:1550 |
printf基础练习2 (C语言代码)浏览:605 |
C语言训练-求素数问题 (C语言代码)浏览:1509 |
【亲和数】 (C语言代码)浏览:530 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:552 |
【偶数求和】 (C语言代码)浏览:588 |
WU-输入输出格式练习 (C++代码)浏览:1133 |