道友们好,经过一天的学习,我又得到了一些知识,在这里我将继续和大家分享
首先,看题目吧
题目内容:
根据scanf()的返回值判断scanf()是否成功读入了指定的数据项数,使程序在用户输入123a时,能输出如下运行结果:
123a↙
Input error!
输入格式: "%d %d"
输出格式:
如果成功读入指定的数据项数,输出格式为:"a = %d, b = %d\n" (注意:等号的两边各有一个空格)
输入非法数据,输出格式为:"Input error!"
由于我还没学如何检测用户错误输入,这道题又是百度才找到思路
#include <stdio.h>
int main()
{
int a,b,s;
s=scanf("%d %d",&a,&b);//这里的s是等于真正输入的数据的个数
if(s==2)//因为scanf是取了两个整数,所以s=2时才表明正确输入
{
printf("a = %d, b = %d\n",a,b);
}
else
{
printf("Input error!");
}
return 0;
}
所以,下面这道题,我们可以用同样的方法解决
题目内容:
从键盘任意输入一个公元年份(大于等于1),判断它是否是闰年。若是闰年输出“Yes”,否则输出“No”。要求对输入数据进行合法性判断。
已知符合下列条件之一者是闰年:
(1)能被4整除,但不能被100整除;
(2)能被400整除。
输入格式: "%d"
输出格式:
是闰年,输出:"Yes\n"
不是闰年,输出:"No\n"
输入数据不合法,输出:"Input error!\n"
#include <stdio.h>
#include <math.h>
int main()
{
int x,s;
s=scanf("%d",&x);
if(s==1&&x>=1)
{
if((x%4==0&&x%100!=0)||(x%400==0))
{printf("Yes\n");}
else{printf("No\n");}
}
else
{
printf("Input error!");
}
return 0;
}