首页 > 解决方案 > 如何确定某些数字的最大值和最小值以及平均值?

问题描述

计划目标:

编写一个程序,让教师根据输入的成绩确定最低、最高和平均成绩。教师将不断输入成绩,直到指定哨兵为止。对于此示例,将使用 -1 的成绩来表示评分已完成。然后应向教师显示最低、最高和平均成绩。该程序不应接受使用无效的成绩 [0, 100]。

我附上了我的代码图片,请看一下。当我运行它时,它告诉我有一个错误。

图片

标签: c++

解决方案


让我们从底部开始,逐步向上。
读数字

int number = 0;
while (std::cin >> number)
{
    if (number == -1) break;
}

运行总和
总和是每个数字的加法;无需将数字存储在容器中。

int number = 0;
int sum = 0;
while (std::cin >> number)
{
    if (number == -1) break;
    sum += number;
}

运行最大值
这个有点棘手。最大值希望成为输入的第一个值。

int number = 0;
int sum = 0;
int maximum = 0; // All variables should be initialized.
std::cin >> maximum;
sum = maximum;
if (maximum == -1)
{
    return 0;
}
while (std::cin >> number)
{
    if (number == -1) break;
    sum += number;
    if (number > maximum)
    {
        maximum = number;
    }
}

最小值和平均值的计算留给 OP 练习(您需要自己做一些工作)。

提示:平均值是sum除以输入数字的数量。请注意,平均值至少需要 1 个值,这样就不会被零除(通常使用 3 个值作为平均值)。同样,也不需要容器。

我没有查看 OP 的代码就发布了这个答案,因为 OP 最初发布了一个指向图像的链接并且防火墙阻止了该链接。


推荐阅读