一个简单的程序问题,请高手解答下。
我是刚学C语言的新手,所以请各位老鸟们多多关照下。谢谢!今天看书学习C语言,一个例子是要求用户输入自己年龄如果大于等于18岁就显示得到10美元礼物。如果小于18岁就显示得到5美元礼物。自己对源程序做了些更改,如下:
#include "stdio.h"
main()
{
int age;
do
{printf("\n你多大了?:");
scanf(" %d",&age);
if(age<18&&age>0)
{printf("\n你将得到5美元的奖品。欢迎下次再来。");}
else
{
if(age>=18)
printf("\n你将得到10美元的奖品。欢迎下次再来。");
else \*如果用户输入了一个负数的情况*\
printf("\n你输入的年龄有误。请重新输入。");
}
}
while(age<=0);
return 0;
}
因为例子上age变量设置的是int型变量,但用户可能会输入浮点数。如果是大于1的浮点数程序可以正常判断。当输入小于1的浮点数时。程序陷入死循环。
是否有在不更改age类型int的情况下,使用户输入浮点数的情况下程序能正常运行,或者判别在用户输入浮点数的情况下提示输入错误。