【问题标题】:Negative output for long doublelong double 的负输出
【发布时间】:2017-11-25 11:07:19
【问题描述】:

为什么以下代码对每个输入都给出 -2.000000 的答案?

#include <stdio.h>
#include <math.h>

int main()
{

    long long int s1,s2;
    long double l,y,m=sqrt(2);

    scanf("%Lf %lld %lld",&l,&s1,&s2);

    y=l*m;
    printf("%Lf\n",y);
}

【问题讨论】:

  • 我无法复制:ideone.com/H2KRHF
  • 缺少标题?编译所有警告(-Wall for gcc)
  • 好的,那么您使用的是哪个编译器,哪个操作系统?以及如何编译、链接和运行代码?
  • 您能告诉我们一些您尝试过的示例输入吗?
  • 我也无法复制。顺便说一下,“l”是一个可怕的变量名!

标签: c long-double


【解决方案1】:

您可能在编译器设置中对浮点环境进行了某种奇怪的修改。也许代表指数的位现在代表数字本身。

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 1970-01-01
    • 2020-09-22
    • 2014-09-30
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多