目前我已经实现了该计划的所有目标,除了输出我的字母评分平均值。现在它总是输出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;
}
答案 0 :(得分:2)
output
函数的定义如下:
void output(/*stuff*/ int lettergrade)
此处lettergrade
是整数,但您希望它是char
,因此您应该相应地更改定义。