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