/* Solution with switch_case instruction */ /*Given grades of 4 tests. Get A if average is 90 or above*/ /*B if average is 80-89, C if average is 70-79, D if average is 60-69*/ /*F if average is lower than 60*/ #include float test1, test2, test3, test4; float average; int grade_range; char grade; void main() { scanf ("%f%f%f%f", &test1, &test2, &test3, &test4); average = (test1+test2+test3+test4)/4; /* since I cannot use float as switch expression, I define integer ranges */ if (average>=90.0) grade_range = 1; else if (average>=80.0) grade_range = 2; else if (average>=70.0) grade_range = 3; else if (average>=60.0) grade_range = 4; else grade_range = 5; switch (grade_range) { case 1: grade = 'A'; break; case 2: grade = 'B'; break; case 3: grade = 'C'; break; case 4: grade = 'D'; break; default : grade = 'F'; } printf ("%c\n", grade); }