1
检测用户错误输入(4分)
题目内容:
根据scanf()的返回值判断scanf()是否成功读入了指定的数据项数,使程序在用户输入123a时,能输出如下运行结果:
123a↙
Input error!
输入格式: "%d %d"
输出格式:
如果成功读入指定的数据项数,输出格式为:"a = %d, b = %d\n" (注意:等号的两边各有一个空格)
输入非法数据,输出格式为:"Input error!"
#include <stdio.h>
int main()
{
int a,b,c;
c=scanf("%d %d",&a,&b);
if(c==2)
printf("a = %d, b = %d\n",a,b);
else printf("Input error!");
return 0;
}
2
闰年判断(6分)
题目内容:
从键盘任意输入一个公元年份(大于等于1),判断它是否是闰年。若是闰年输出“Yes”,否则输出“No”。要求对输入数据进行合法性判断。
已知符合下列条件之一者是闰年:
(1)能被4整除,但不能被100整除;
(2)能被400整除。
#include <stdio.h>
int main()
{
int year=0;
if(scanf("%d",&year)!=1) printf("Input error!\n");
else
{
if(year < 0)
printf("Input error!\n");
else
(((year % 4 == 0)&&(year % 100 != 0)) || (year % 400 == 0)) ? printf("Yes\n") : printf("No\n");
}
}
运行结果示例1:
2015↙
No
运行结果示例2:
2016↙
Yes
运行结果示例3:
-123↙
Input error!
运行结果示例4:
a↙
Input error!
3
程序改错v1.0(7分)
题目内容:
下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,否则将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。