c++ - 使用max函数和/或替代方法的正确方法

标签 c++

所以,这是我的作业问题。它指出“五次输入五个数字。每次,程序选择输入的最大数字,并返回这五个最大数字的算术平均值。”现在,我所做的是使用max函数,但是,我了解到它不能以这种方式使用。这是我尝试过的:

#include <iostream>
using namespace std;

int main() {
  int zbir = 0;
  for (int i = 1; i < 6; i++) {
    int a, b, c, d, e;
    for (int j = 1; j < 6; j++) {
      cin >> a >> b >> c >> d >> e;
    }
    int maks = max(a, b, c, d, e);
    zbir = zbir + maks;
  }
  cout << zbir / 5;
}

最佳答案

您可能希望将平均值作为float而不是int进行计算,否则程序会将最终答案四舍五入到最接近的整数。另外,您实际上不需要使用五个变量来存储每个循环的输入,因为您可以忽略任何小于该循环运行最大值的输入。这意味着您根本不需要使用std::max。

#include<iostream>

int main()
{
  float running_total = 0;
  for (int cycle = 1; cycle < 6; ++cycle)
  {
    float cycle_max;
    for (int entry = 1; entry < 6; ++entry)
    {
      float input = 0;
      std::cin >> input;
      if (entry == 1 || input > cycle_max) cycle_max = input;
    }
    running_total += cycle_max;
  }
  std::cout << running_total / 5 << std::endl;
}

关于c++ - 使用max函数和/或替代方法的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59235555/

相关文章:

c++ - 在 main 中使用函数的局部变量

python - Qt中两个MainWindow()之间的通信

c++ - 在 C++17 中获取以毫秒为单位的时间?

c++ - 在 ubuntu shell 上编译 cpp 程序时出现问题

c++ - 如何从 QWebView 中的输入字段获取值

c++ - 未定义对 wxGLCanvas 构造函数的引用?

c++ - 如何定义 "Do-Nothing"排序?

c++ - 可以将 boost 累加器用作类成员

c++ - ubuntu下g++编译错误

c++ - Objective-C 源代码和 clang -rewrite-objc C++ 代码之后有什么关系?