Use a dictionary, a loop, and conditionals to print each subject with its letter grade in alphabetical order.
You start with:
map<string, int> grades;
grades["Math"] = 92;
grades["English"] = 78;
grades["Science"] = 85;
grades["History"] = 67;
Build:
English: C History: D Math: A Science: B
Rules:
- Visit the subjects in alphabetical order.
- Look up each subject's score in the dictionary and apply the grading scale (90+ A, 80s B, 70s C, 60s D, else F).
- On each iteration print the subject, a colon and a space, then the grade, for example
English: C.
Use a
map<string, int> - it stores keys in sorted order.
map<string, int> grades;
grades["Math"] = 92;
grades["English"] = 78;
grades["Science"] = 85;
grades["History"] = 67;
for (auto& kv : grades) {
const string& subject = kv.first;
int score = kv.second;
string grade;
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else if (score >= 60) {
grade = "D";
} else {
grade = "F";
}
cout << subject << ": " << grade << endl;
}
Free plan: 30 tutor messages. Premium is unlimited.
Saved
Ctrl + Enter to check
