c语言中如何判断输入的是否数字?
3个回答
展开全部
你写的这个有太多的错误。至于定义数组的时候a[n]这种错误我就不讲了
还有在循环里面(i=1;i<n;i++)
n没赋值就调用的错误我也不讲了
讲你的死循环问题
你没有给循环加一个限制条件
根据你continue的意思我暂时理解为
如果输入的不是数字
那么一直循环
重新输入
一直到你输入的是数字为止跳出循环
对吗?
while(1){
printf("请输入要查的值\n");
ret=scanf("%d",&n);
printf("ret=%d\n",ret);
if(ret==0){
printf("输入错误,请重新输入\n");
continue;
}
break;
}
这样就可以
如果输入的是数字
scanf的返回值为1
那么循环的第一次
不会进入if(ret==0)
也就是说
如果输入的是数字
直接执行break跳出循环
如果输入的不是数字
循环的时候执行语句if(ret==0)
然后执行continue
continue的意思是跳出当前循环继续下一次循环
即执行到continue之后从新循环而不会执行到break
以此类推
只要你输入的不是数字
则永远循环
输入的如果是数字
跳出循环
执行完毕。
大哥
如果小弟回答正常
给点分吧
多谢
=================================================================
另外对于一楼的同学
我必须有好的提醒你scanf()的用法以及返回值的相关问题
我想你肯定不知道
scanf("%d",&i)
如果你输入的是int型则返回1
否则返回0
换句话说即你输入的类型和scanf()里面预先定义的类型一致
则返回1
否则返回0
thank
you
还有在循环里面(i=1;i<n;i++)
n没赋值就调用的错误我也不讲了
讲你的死循环问题
你没有给循环加一个限制条件
根据你continue的意思我暂时理解为
如果输入的不是数字
那么一直循环
重新输入
一直到你输入的是数字为止跳出循环
对吗?
while(1){
printf("请输入要查的值\n");
ret=scanf("%d",&n);
printf("ret=%d\n",ret);
if(ret==0){
printf("输入错误,请重新输入\n");
continue;
}
break;
}
这样就可以
如果输入的是数字
scanf的返回值为1
那么循环的第一次
不会进入if(ret==0)
也就是说
如果输入的是数字
直接执行break跳出循环
如果输入的不是数字
循环的时候执行语句if(ret==0)
然后执行continue
continue的意思是跳出当前循环继续下一次循环
即执行到continue之后从新循环而不会执行到break
以此类推
只要你输入的不是数字
则永远循环
输入的如果是数字
跳出循环
执行完毕。
大哥
如果小弟回答正常
给点分吧
多谢
=================================================================
另外对于一楼的同学
我必须有好的提醒你scanf()的用法以及返回值的相关问题
我想你肯定不知道
scanf("%d",&i)
如果你输入的是int型则返回1
否则返回0
换句话说即你输入的类型和scanf()里面预先定义的类型一致
则返回1
否则返回0
thank
you
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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年的任意一年:");
}
}
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年的任意一年:");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询