Use a dictionary, a loop, and conditionals to print each subject with its letter grade in alphabetical order.
You start with:
grades := map[string]int{"Math": 92, "English": 78, "Science": 85, "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 - collect keys into a []string slice, sort with sort.Strings, then iterate.
grades := map[string]int{"Math": 92, "English": 78, "Science": 85, "History": 67}
subjects := make([]string, 0, len(grades))
for subject := range grades {
subjects = append(subjects, subject)
}
sort.Strings(subjects)
for _, subject := range subjects {
score := grades[subject]
var grade string
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"
}
fmt.Println(subject + ": " + grade)
}
Free plan: 30 tutor messages. Premium is unlimited.
Saved
Ctrl + Enter to check
