Reputation: 25
Currently i have achieved all goals for this program except outputting my letter graded average. Right now it always outputs a 70 and not a letter grade. Does anyone see what my issue is? I know currently that its redefining my lettergrade value into a 70 after passing through the lettergrade function.
#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;
}
Upvotes: 1
Views: 82
Reputation: 44888
The output
function is defined like this:
void output(/*stuff*/ int lettergrade)
Here lettergrade
is an integer, but you want it to be a char
, so you should change the definition accordingly.
Upvotes: 2