输出字母等级时遇到问题

Trouble outputting letter grade

本文关键字:遇到 问题 输出      更新时间:2023-10-16

目前我已经实现了这个程序的所有目标,除了输出我的字母平均评分。现在它总是输出 70 而不是字母等级。有人看到我的问题是什么吗?我目前知道它在通过字母等级函数后将我的字母等级值重新定义为 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;
}

output函数定义如下:

void output(/*stuff*/ int lettergrade)

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