【问题标题】:Finding Average of two numbers C++ [duplicate]找到两个数字的平均值C ++ [重复]
【发布时间】:2021-09-03 20:05:31
【问题描述】:

作为编程领域的新手,我必须编写一些 C++ 代码来求两个数字的平均值。 但是,我的代码似乎不正确。请看我的代码:

#include <iostream>
using namespace std;

int main() {
  float a, b, average; 

  cin >> a;
  cin >> b;

  average = (a+b)/2;

  cout << average << endl;
}

但是,它说我错了,因为当我输入 10 10 它输出 10 但系统要我输出 10.00

【问题讨论】:

  • 数学上 10 和 10.00 有什么区别?你能输出一个数字(例如浮点数)并得到 10.00 吗?
  • @QuantumPi 是否有任何答案有助于解决问题?

标签: c++


【解决方案1】:

您需要使用一些 I/O 操纵器。 std::setprecisionstd::fixed

例子:

#include <iomanip>
#include <iostream>

int main() {
    if(float a, b; std::cin >> a >> b) {
        float average = (a+b)/2;

        std::cout << std::fixed << std::setprecision(2) << average << '\n';
    }
}

【讨论】:

    【解决方案2】:

    正如其他人所说,您需要将 cout 行更改为:

    cout &lt;&lt; fixed &lt;&lt; setprecision(2) &lt;&lt; average &lt;&lt; endl;

    请记住,使用&lt;&lt;s,您将数据流(iostream)放入 cout。第一条数据是std::fixed,上面写着“显示浮动到固定的小数位数,不要切断任何尾随零。”然后std::setprecision(2) 说“将固定的小数位数设为 2。”如果需要,可以使用 int 变量或其他数字代替 2。从那里开始,流有你的平均值和像以前一样的结束线。

    【讨论】:

    • 很好的解释。不过,“将数据流(一个 iosteam)放入 cout”有点令人困惑。 coutostream(不是 iostream)并且数据不是流。除此之外,还不错。来自我的 +1。
    【解决方案3】:

    设置小数精度 设置用于格式化输出操作的浮点值的小数精度。

    #include <iostream>
    using namespace std;
    #include <iomanip>      // std::setprecision
    
    int main() {
      float a, b, average; 
    
      cin >> a;
      cin >> b;
    
      average = (a+b)/2;
    
      cout << fixed << setprecision(2) << average << endl;
    }
    

    【讨论】:

    • 什么是设置精度???
    • 差不多,std::fixed 也是需要的。
    • 没有 std::fixed 它将执行 2 个有效数字,而不是小数点后。
    • 哦,所以你需要std::fixed?
    • 哦,不,我现在明白了,我只是困惑了一秒钟
    猜你喜欢
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    相关资源
    最近更新 更多