-3

该程序应该使用一个函数将 4 个成绩收集到一个数组中,使用另一个函数对成绩进行平均,并使用另一个函数显示平均成绩和 4 个原始成绩。

4 个等级必须在 0 到 100 之间。

我有这个程序打印出 Grade[2] 只是为了测试它,但它总是输出垃圾。我在这里做错了什么?

此外,如果我尝试调用 getGrades(grade, 5) 而没有“float Grade[5]”行,它会告诉我“grade”是一个未声明的标识符。这使我相信我在编写该函数时做错了。

谢谢

#include <iostream>

using namespace std;

float computeAverage(float exam1, float exam2, float exam3, float exam4)
{
    float average;
    average = exam1*.2 + exam2*.2 + exam3*.2 + exam4*.4;
    return average;
}

void getGrades(float a[], int size)
{
    int i;
    float num;
    for (i=0; i<4; i++)
    {
        cin >> num;
        if (num>=0 && num <=100)
            num = a[i];
        else 
        {
            cout << "That number is out of range.";
            i--;
        }
    }
}


int main()
{

float grade[5];

getGrades(grade,5);

grade[4] = computeAverage(grade[0], grade[1], grade[2], grade[3]);

cout << grade[2];






    return 0;
}
4

2 回答 2

5

您没有将值存储grade在函数中的数组中getGrades,这就是您获得垃圾值的原因。

改变这个: -

num = a[i];

a[i] = num; 
于 2013-07-09T16:57:23.237 回答
0
num = a[i];

应该

a[i] = num;

欢迎来到计算机科学 :-)

于 2013-07-09T17:01:07.097 回答