zdh2579941211 2022-11-19 22:19 采纳率: 0%
浏览 5

#include <math.h> ... What,s your age?

今天晚上在写一个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就显示年龄还太小的结果(第一个打印结果)

  • 写回答

1条回答 默认 最新

  • 牛牛要坚持 2022-11-19 22:39
    关注

    scanf里输入double类型数据要%lf
    fabs是求实数绝对值 17-18最后求绝对值是1.0了
    可以设if( xusui>18.5) ... else if(xusui<18.5)…

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月19日

悬赏问题

  • ¥15 有限差分法求解以下的一维流动的偏微分方程
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!