C语言判断是否为整数且在0到100范围内

为什么我输入满足条件的数字也走while循环~新手一枚求指教~

第1个回答  2013-12-01
#include <stdio.h>
int main(void)
{
float a;
int a1;
printf("enter the mark \n");
scanf("%f",&a);
a1 = (int) a;
while(a1 != a || a<0 || a>100)
{
printf("\n MUST at 0~100 \n");
printf("\n enter again \n");
scanf("\n%f",&a);
a1 = (int)a;
}
printf("ok \n");
return 0;
}本回答被提问者采纳
第2个回答  2023-03-10
C语言判断是否为整数且在0到100范围内的方法是:先用scanf函数读取用户输入的一个数,然后用if语句判断这个数是否满足条件。例如,你可以参考下面的代码:
#include <stdio.h>//定义一个函数,判断输入的数是否为整数且在0到100范围内void judge(int x){ //如果x小于0或大于100,输出提示信息
if (x < 0 || x > 100)
{ printf("输入的数不在0到100范围内\n");
} //否则,输出输入的数
else
{ printf("输入的数是%d\n", x);
}
}//主函数int main(){ //定义一个整型变量num
int num; //提示用户输入一个数,并读取到num中
printf("请输入一个整数:\n"); scanf("%d", &num); //调用judge函数,判断num是否满足条件
judge(num);
}
第3个回答  2013-12-01
为什么scanf的格式化字符串开头是一个\n
去掉
第4个回答  2013-12-01
目测应该是逻辑短路所造成。。。追问

要怎么改~求指教~

追答

应该是a1=(int)a....所以才造成循环啊。。

追问

a1=(int)a为了取a的小数部分,然后a1不等于a的话就说明a不是整数然后走循环重新输入呀~

追答

所以说你的a1应该定义成整形啊,然后C语言中的两个等号是什么意思啊。。我去。。赋值是一个等号好么。。

相似回答