今天晚上在写一个while循环交互的程序时出现了编译情况
情况是这样的我写的是一个虚岁减去实岁的语句
然后虚岁减去实岁大于0.5的话就可以参军了
我输入的条件我感觉都没什么问题,但就是编译不出来
#include <math.h>
#include <stdio.h>
int main(void)
{
const double shisui = 18;
double xusui;
printf("What,s your age?\n" );
scanf("lf",&xusui);
while(fabs(xusui - shisui) <(double) 0.5)//fabs()是返回某一个值的绝对值的一个函数;
{
printf("Your age is too small.\n" );
scanf("%f",&xusui);
}
printf("You age is commit 18 that is commit to attebd in PLA.\n");
return 0;
}
不是说编译不出结果,是哪个结果是假的,不是我想要的。
上图:
我打印出的结果:
What,s your age?
17
You age is commit 18 that is commit to attebd in PLA.
//17就是虚岁,17 - 18明显小于0.5啊,他直接编译出虚岁减去实岁>=0.5的结果了,我就很懵。
我把之前的<0.5改成小于等于了,这时候不论输入多少岁都是符合当兵要求(即是语句中的条件为假,(第二个打印结果)然后打印出可以参军的结果)while(fabs(xusui - shisui) <=(double) 0.5
我想要达到的结果:当我输入18.5以上时它能够得出可以参军的结果,小于18.5就显示年龄还太小的结果(第一个打印结果)