c语言整型输入问题:若输入整数则正常运行,但若尝试小数或字符(如7.7或A)则陷入死循环,如何保证程序健壮性
答案:4 悬赏:40 手机版
解决时间 2021-11-08 23:45
- 提问者网友:雪舞兮
- 2021-11-08 03:17
c语言整型输入问题:若输入整数则正常运行,但若尝试小数或字符(如7.7或A)则陷入死循环,如何保证程序健壮性
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-11-08 03:33
在printf("输入值超范围\n\n");后面加上这样两句:
fflush(stdin);
a = -1;
fflush(stdin);
a = -1;
全部回答
- 1楼网友:怀裏藏嬌
- 2021-11-08 05:00
因为定义的就是一个整形,
而且你的scanf("%d",&a)也是用的是%d,
所以输入整形以外的就会出错。
而且你的scanf("%d",&a)也是用的是%d,
所以输入整形以外的就会出错。
- 2楼网友:平生事
- 2021-11-08 04:41
scanf("%d",&a);
这句后面改为
if(scanf("%d",&a) > 0)
{
if(a>=1&&a<=9)
printf("输出a=%d\n\n",a);
else
printf("输入值超范围\n\n");
}
试试
这句后面改为
if(scanf("%d",&a) > 0)
{
if(a>=1&&a<=9)
printf("输出a=%d\n\n",a);
else
printf("输入值超范围\n\n");
}
试试
- 3楼网友:野慌
- 2021-11-08 04:14
#include
void main()
{
int a;
printf("输入a=");
while(scanf("%d", &a) == 1)
{
if(a>=1&&a<=9)
printf("输出a=%d\n\n",a);
else
printf("输入值超范围\n\n");
printf("输入a=");
}
}
void main()
{
int a;
printf("输入a=");
while(scanf("%d", &a) == 1)
{
if(a>=1&&a<=9)
printf("输出a=%d\n\n",a);
else
printf("输入值超范围\n\n");
printf("输入a=");
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯