麻烦输出字母等级

时间:2017-04-12 17:40:41

标签: c++

目前我已经实现了该计划的所有目标,除了输出我的字母评分平均值。现在它总是输出70而不是字母等级。有谁看到我的问题是什么?我现在知道它在通过lettergrade函数后将我的lettergrade值重新定义为70。

#include<iostream>
#include<string>
using namespace std;




int getexams(int count)
{
    cout << "Number of exams to be entered:";
    cin >> count;

    if (count > 1024)
    {
        cout << "Please enter a number below 1024." << endl;
        system("pause");
        return 0;
    }
    else
        return count;

}

int enterexams(int name[],int count, int b)
{

    int numexams = count;
    for (int a = 0;a < numexams;a++)
    {
        cout << "Enter grades: ";
        cin >> name[a]; 
        b++;
    }
    return b;

}


char letter(double average, char lettergrade)
{
    int x;
    x = average;
    if (x >= 90) {
        lettergrade = 'A';

    }
    else if (x >= 80) {
        lettergrade = 'B';

    }
    else if (x >= 70) {
        lettergrade = 'C';

    }
    else if (x >= 60) {
        lettergrade = 'D';

    }
    else {
        lettergrade = 'F';

    }
    return lettergrade;


}
void output(int count,int name[], double average, int lettergrade)
{
    cout << "Number of exams: " << count << endl;
    for (int a = 0;a < count;a++)
        cout << "Exam grades: " << name[a] << endl;
    cout << "Average grade: " << average << endl;
    cout << "Letter grade: " << lettergrade << endl;
}
int averagecalc(int average,int count,int name[])
{
    int a,sum,x;
    sum = 0;

    for (a = 0;a < count;a++)
    {
        sum += name[a];

    }
    average = sum / count;
    return average;
}
int main()
{
    char lettergrade = 0;
    int b = 0;
    int total = 0;
    double average = 0;
    int count =0;
    count = getexams(count);
    // Number of exams

    int exams = count;
    const int x = exams;            // Exam Values
    int name[1024];

    enterexams(name,count,b);
    average = averagecalc(average,count,name);
    lettergrade = letter(average, lettergrade);
    output(count, name, average, lettergrade);

    system("pause");
    return 0;
}

1 个答案:

答案 0 :(得分:2)

output函数的定义如下:

void output(/*stuff*/ int lettergrade)

此处lettergrade 是整数,但您希望它是char,因此您应该相应地更改定义。