检测用户错误输入(4分)
题目内容:
根据scanf()的返回值判断scanf()是否成功读入了指定的数据项数,使程序在用户输入123a时,能输出如下运行结果:
123a↙
Input error!
输入格式: "%d %d"
输出格式:
如果成功读入指定的数据项数,输出格式为:"a = %d, b = %d\n" (注意:等号的两边各有一个空格)
输入非法数据,输出
格式为:"Input error!"
#include<stdio.h>
int main(){
int a,b,x;
x=scanf("%d %d",&a,&b);
if(x==2)
{
printf("a = %d, b = %d\n",a,b);
}
else
{
printf("Input error!");
}
return 0;
}
闰年判断(6分)
题目内容:
从键盘任意输入一个公元年份(大于等于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>
int main()
{
int year;
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");
}
}
7-24 三天打鱼两天晒网 (15 分)
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入格式:
输入在一行中给出一个不超过1000的正整数N。
输出格式:
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
输入样例1:
103
结尾无空行
输出样例1:
Fishing in day 103
结尾无空行
输入样例2:
34
输出样例2:
Drying in day 34
#include<stdio.h>
int main()
{
int day,x;
scanf("%d",&day);
x=day%5;
if(x==0||x==4)
{
printf("Drying in day %d",day);
}
else
{
printf("Fishing in day %d",day);
}
}