【问题标题】:C++. How do I get the right output? [duplicate]C++。如何获得正确的输出? [复制]
【发布时间】:2020-08-30 00:02:40
【问题描述】:

输出答案应该是 58.493745,我一直得到的答案是 584.937

#include <iostream>
using namespace std;
int main()
{
     double e = 2.0000000000 * 10^10;
     double r = 2.00000035 * 10^10;
     double c = 6.685 * 10^8;
     double v = c * (r - e) / (r + e);
     cout << v << endl;
     return 0;
}

【问题讨论】:

  • cout &lt;&lt; "584.937" ??你不知道任务是什么,算法应该做什么,所以我们无法比这更好地回答。
  • 2.0000000000 * 10^10 应该是 2.0000000000e10
  • @bolov 对此感到抱歉,我对这个网站还很陌生。是雷达枪的问题。它应该从提供的数据中获取速度。
  • @Eljay 我仍然得到相同的答案。
  • 还将2.00000035 * 10^106.685 * 10^8 替换为2.00000035e106.685e8,以及I got 58.4937。那么你应该在cout &lt;&lt; v &lt;&lt; endl;之前添加cout.precision(8);

标签: c++


【解决方案1】:

使用10^10,您可以执行 10 XOR 10。C 中没有内置的幂运算符,但您可以使用 1e10 代替。或者甚至更好地将 e10 直接放在您的文字后面。

【讨论】:

    【解决方案2】:

    试试下面的代码。根据 Eljay 的评论,我已将“10^x”替换为“ex”。

    #include <iostream>
    using namespace std;
    int main()
    {
         double e = 2.0000000000e10;
         double r = 2.00000035e10;
         double c = 6.685e8;
         double v = c * (r - e) / (r + e);
         cout << v << endl;
         return 0;
    }
    

    在线运行此代码:https://www.onlinegdb.com/SJwUbOOQP

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2022-07-04
      相关资源
      最近更新 更多