c语言中如何判断输入的是否数字?

在一个判断闰年的程序中,如何防止用户输入的是一个年份而不是一个字符串?
源代码如下:
#include<stdio.h>
void main()
{
unsigned short int y;
while(1){
printf("请输入1~3000年的任意一年:");
scanf("%u",&y);
if (y<1||y>3000)printf("\n输入年份错误!\n\n");
else{
if ((y%4==0&&y%100!=0)||(y%100==0&&y%400==0))printf("\n%u年是闰年!\n\n",y);
else printf("\n%u年不是闰年!\n\n",y);
}}
}

使用dev-c++编译,如果输入任意字符,则会一直不停的显示printf后的语句。
请高手指点!

第1个回答  2008-10-01
#include<stdio.h>
void main()
{
unsigned short int y;
printf("请输入1~3000年的任意一年:");
while(scanf("%u",&y)==1){

scanf("%u",&y);
if (y<1||y>3000)printf("\n输入年份错误!\n\n");
else{
if ((y%4==0&&y%100!=0)||(y%100==0&&y%400==0))printf("\n%u年是闰年!\n\n",y);
else printf("\n%u年不是闰年!\n\n",y);
}
printf("请输入1~3000年的任意一年:");
}
}本回答被提问者采纳
第2个回答  2008-10-01
1,确定年份的定义域[1,正无穷),也就是说大于1的整数都是正确;
2,判断它是否为大小1的整数;
第3个回答  2008-10-10
在C语言中,你可以看下头文件加入#include <ctype.h>下的isalpha函数:
是来判断的
你可以参考下http://baike.baidu.com/view/1426333.htm
第4个回答  2008-10-01
最好的方法是别用int 定义y
用string .
然后用atoi转化一下。
第5个回答  2008-10-01
char c
if (c>'9'||c<'0')
{
//是数字
}
else
{
//步是数字
}

C#如何判断一个字符串是不是数字
C语言:其实在我们的C语言的编程里,对于判断一个字符串是不是数字,无非就是对其定义,并利用判断语句对其进行循环判断,不过这个程序,只需要进行两次循环的判断,如果我们输入的字符串不是字母就是数字,所以,今天就教大家如果用C语言来进行判断我们输入的字符串是数字还是字母吧,希望对你们有所帮助。...

C语言:如何判断输入的是数字还是其他字符
1、可以用sacnf或gets函数直接接收输入的字符串,然后用循环遍历字符串中每一个字符,判断其是字母还是数字。2、可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字。至于怎么判读是字母还是数字,很简单,假设字符c,满足 (c>='a'&& c<='z')|| (c>=...

c语言 如何判断输入的是数字还是字母
1、首先,打开C语言编译器,新建一个初始的.cpp文件,例如:test.cpp。2、其次,在test.cpp文件中,输入C语言代码:char a = getchar(); getchar();if (a <= '9' && a >= '0') printf("数字");else printf("字母");3、然后,编译器运行test.cpp文件,输入数字,此时会成功判断输入内...

c语言中如何判断输入的是字符还是数字
可以使用代码进行判断:include<stdio.h> intmain(){ charc;while(scanf("%c",&c)!=EOF){ getchar();if(c>='0'&&c<='9')printf("%c是数字\\n",c);elseif(c>='a'&&c<='z'||c>='A'&&c<='Z')printf("%c是字母\\n",c);elseprintf("%c是特殊字符\\n",c);} return0;}...

"如果输入的不是数字"这就话怎么用c语言写出来?
对于C语言来说数字就是ascII码的 0 - 9,因此判断输入的是数字:if ( '0' <= a && '9' >= a)判断不是的就反过来:if ( !( '0' <= a && '9' >= a) )

C语言 判断字符是否是一个数字的两种方法
printf("是数字\\n"); }return 0;}自定义函数 include<stdio.h>#include<ctype.h>int main(){ char num; scanf("%c",&num); if(num>='0' && num<='9') printf("是数字\\n"); else printf("不是数字\\n");return 0;} ...

C语言中,如何判断一个字符是否为数字呢?
可以参考下面的代码:int i = 0;while ( i < 10){ scanf("%d",&m);if ( m != 0 || m!= 1) continue;else{ array[i] = m;i++;} } C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器...

c语言判断输入的是否是数字(不止一位)
include<stdio.h> intmain(){ charc;c=getchar();\/\/来判断是否为数字,如果是数字那么会返回非0 if(is digit(c)!=0)printf("是数字\\n");\/\/来判断是否为字母,如果是字母那么返回非0 elseif (is alpha(c)!=0)printf("是字母\\n");else printf("是特殊字符\\n");} ...

C语言如何判断,输入的是数字。如果不是则输出重新输入的信息。 如不...
用gets读行,然后对每一个字符分析,如果都是数字,再把字符串转换为数值类型。代码如下所示:include <stdio.h>#include <ctype.h>#include <stdlib.h>#include <string.h>int main(){ char str[10]; int bad_flg = 0; \/\/输入错误 do { printf("请输入数字\\n"); ge...

c语言如何判断从键盘输入的是符号还是数字呢?
C语言中,可以根据scanf()函数的返回值,判断输入的数据是否符合程序要求,该函数说明如下:int scanf(const char *format, ...);this functions return the number of input items successfully matched and assigned, which can be fewer than provided for, or even zero in the event of an ...

相似回答