首页 > 解决方案 > 在 C++ 中不使用数组或最小值/最大值计算测试成绩平均值

问题描述

谁能给我一些在这里使用函数的指示?任务如下:

*> 编写一个程序,计算一组测试分数的平均值,其中该组中的最低分数被丢弃。它应该使用以下功能:

  • void getScore()应该向用户询问测试分数,将其存储在参考参数变量中,并对其进行验证。main对于要输入的 6 个分数中的每一个,都应调用一次此函数。使用要为其输入分数的局部静态变量。

  • void calcAverage()应计算并显示五个最高分的平均值。这个函数应该只被调用一次,main并且应该传递六个分数。结果包括 2 个小数位。这是按值传递的数据。

  • double findLowest()应该找到并返回传递给它的六个分数中的最低值。它应该由 调用calcAverage,它使用该函数来确定要删除六个分数中的哪一个。这是按值传递的数据。

不要使用 min 或 max C++ 函数。*

我没有发现的是如何使用 void 函数将数据传回 main。到目前为止,我的代码是一团糟的错误,但我不确定如何处理这个错误。

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

double getScore(double);
double calcAverage(double);
double findLowest(double);

int main()
{
    
    double score = 0;
    double combinedScore = 0;


    getScore(score);

    calcAverage(combinedScore);

    findLowest();

}

double getScore(double score)
{
    double grade;
    int testNum = 1;

    cout << "Enter the test " << testNum << " grade :";
    cin >> grade;
    while (grade < 0)
    {
        cout << "Invalid entry! Must be at least zero.";
        cin >> grade;
    }
    while (testNum <= 6)
    {
        cout << "Enter the test " << testNum << " grade :";
        cin >> grade;
        if (grade < 0)
        {
            cout << "Invalid entry! Must be at least zero.";
            cin >> grade;
        }
        else
        testNum++;
        cout << "Enter the test " << testNum << " grade :";

        return (grade);
    }
}

void calcAverage()
{
    
}

double findLowest()
{

}

标签: c++function

解决方案


我没有发现的是如何使用 void 函数将数据传回 int main。

第一步是使用void参考函数:

#include <iostream>

void getScore(double& score)
{
    score = 4.0;
}

int main()
{
    double score = 0.;
    getScore(score);
    std::cout << score << std::endl;
}

这并不能完成你的作业,但它会告诉你你需要知道的第一件事。


推荐阅读