【问题标题】:Calculating test grade averages without using arrays or min/max in C++在 C++ 中不使用数组或最小值/最大值计算测试成绩平均值
【发布时间】:2021-03-11 23:41:33
【问题描述】:

谁能给我一些关于这里函数使用的指导?作业如下:

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

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

  • 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()
{

}

【问题讨论】:

  • 您可以使用引用:"将其存储在引用参数变量中"
  • 这就是我所坚持的。我如何使用 void 函数来做到这一点?我认为引用需要在 main 中声明一个变量,然后可以传入诸如 ``` double getScore(double score) ```
  • 解释说明,看来你应该给getScore打六次电话,每个年级一次。
  • 你可以用&amp;标记参数,告诉C++它应该通过引用传递,即传入函数的变量应该与函数中的变量相同。这用于影响函数外部的变量。

标签: c++ function


【解决方案1】:

我没有发现如何使用 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;
}

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

【讨论】:

  • 有趣。可以用“常规”声明的变量替换“浮动”吗?我们还没有在课堂上完成浮动
  • 是的,floatdouble 彼此一样“常规”。我会编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
相关资源
最近更新 更多