我需要帮助以获取新的平均值

时间:2019-01-29 22:50:28

标签: c++

因此,我正在使用函数创建一个数组循环,以要求用户输入成绩,然后获得平均值。我希望进行设置,以便在获得第一个平均分数后可以输入另一组成绩并获得新的平均分数。问题在于没有创建新的平均值,而只是重新输出第一次运行的平均值。

#include <iostream>
using namespace std;


int setLength();
void getGrade(int[], int);
double getAverage(int[], int);

int main()
{
    const int alength = setLength();
    int gradearray[alength];
    string ans;

    for (int e = 0; e < alength; e++)
    {
        gradearray[e] = 0;
    };

    getGrade(gradearray, alength);
    double avg = getAverage(gradearray, alength);   
    cout << "The average grade is " << avg << "%\n"
         << "Would you like to calculate the average of another set of grades? \n";
    cin  >> ans;

    if (ans == "yes" || ans == "Yes" || ans == "y" || ans == "Y" || ans == "1")
        while (ans == "yes" || ans == "Yes" || ans == "y" || ans == "Y" || ans == "1")
        {
                const int alength = setLength();
                getGrade(gradearray, alength);
                getAverage(gradearray, alength);

                cout << "The average grade is " << avg << "%\n"
                << "Would you like to calculate the average of another set of grades? \n";
                cin  >> ans;
        }

    return 0;
 }

我希望新的循环输出。我正在重复第一个平均值。

2 个答案:

答案 0 :(得分:0)

第二次调用getAverage时,您没有将返回值分配给任何东西。它只是被丢弃,而avg保留其先前的值。

答案 1 :(得分:0)

看看您如何获得第一次平均水平

 double avg = getAverage(gradearray, alength);

现在看看如何获​​得第二次平均水平

 getAverage(gradearray, alength);

看到区别了吗?

顺便说一下,这里的if语句是多余的

if (ans == "yes" || ans == "Yes" || ans == "y" || ans == "Y" || ans == "1")
    while (ans == "yes" || ans == "Yes" || ans == "y" || ans == "Y" || ans == "1")

只需使用while循环。