程序在函数中形成后返回垃圾

时间:2013-07-09 16:54:31

标签: c++

该程序应该使用一个函数将4个等级收集到一个数组中,使用另一个函数来平均成绩,另一个函数用于显示平均成绩和4个原始成绩。

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

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

另外,如果我首先在没有“float grade [5]”行的情况下尝试调用getGrades(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;
}

2 个答案:

答案 0 :(得分:5)

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

更改: -

num = a[i];

a[i] = num; 

答案 1 :(得分:0)

num = a[i];

应该是

a[i] = num;

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