I keep getting a run time error but the code compiles and opens??
i dont understand
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
//help from Chegg tutors
//Ayila Reese
#include <iostream>
using namespace std;
char scoreToGrade(double score) {
char grade = 'F';
if (score >= 90.0) {
grade = 'A';
}
else if (score >= 80.0) {
grade = 'B';
}
else if (score >= 70.0) {
grade = 'C';
}
else if (score >= 60.0) {
grade = 'D';
}
return grade;
}
int main(int argc, char** argv) {
double total_score = 0;
double lowest_score = DBL_MAX;
double highest_score = DBL_MIN;
double score;
double scores[5];
int report[5];
char letters[] = { 'A', 'B', 'C', 'D', 'F' };
for (int i = 0; i < 5; i++) {
report[i] = 0;
}
cout << "Please enter your scores for the following 5 homework assignments:\n";
for (int i = 0; i < 5; i++) {
cout << "HW" << i + 1 << ": ";
cin >> score;
if (score < lowest_score) {
lowest_score = score;
}
if (score > highest_score) {
highest_score = score;
}
total_score += score;
scores[i] = score;
report[scoreToGrade(score) - 'A'] += 1;
}
double average = total_score / 5.0;
cout << "Your average score is " << scoreToGrade(average)
<< " which is a "
<< scoreToGrade(average) << ".\n";
cout << "Your letter grade report is : \n";
for (int i = 0; i < 5; i++) {
cout << report[i] << " " << letters[i] << "\n";
}
cin.get();
return 0;
}
|
because of this;
report[scoreToGrade(score) - 'A'] += 1;
a grade of 'F' will generate a subscript error as indices are 0..4 but 'F'-'A' = 5.
Topic archived. No new replies allowed.