fork download
  1. #include <stdio.h>
  2.  
  3. struct gradeStats {
  4. int total_A;
  5. int total_B;
  6. int total_C;
  7. int total_D;
  8. int total_F;
  9. int total_I;
  10. };
  11.  
  12. struct gradeStats countGrades(char grades[], int size) {
  13. struct gradeStats stats = {0};
  14.  
  15. for (int i = 0; i < size; i++) {
  16. char grade = grades[i];
  17. switch (grade) {
  18. case 'A':
  19. case 'a':
  20. stats.total_A++;
  21. break;
  22. case 'B':
  23. case 'b':
  24. stats.total_B++;
  25. break;
  26. case 'C':
  27. case 'c':
  28. stats.total_C++;
  29. break;
  30. case 'D':
  31. case 'd':
  32. stats.total_D++;
  33. break;
  34. case 'F':
  35. case 'f':
  36. stats.total_F++;
  37. break;
  38. default:
  39. stats.total_I++; // Invalid grade
  40. }
  41. }
  42.  
  43. return stats;
  44. }
  45.  
  46. int main() {
  47. char grades[] = {'A', 'b', 'C', 'x', 'D', 'c', 'F', 'B', 'Y', 'B', 'B', 'A'};
  48. int size = sizeof(grades) / sizeof(grades[0]);
  49.  
  50. struct gradeStats stats = countGrades(grades, size);
  51.  
  52. printf("Total A: %d\n", stats.total_A);
  53. printf("Total B: %d\n", stats.total_B);
  54. printf("Total C: %d\n", stats.total_C);
  55. printf("Total D: %d\n", stats.total_D);
  56. printf("Total F: %d\n", stats.total_F);
  57. printf("Total I: %d\n", stats.total_I);
  58.  
  59. return 0;
  60. }
  61.  
Success #stdin #stdout 0s 5300KB
stdin
Standard input is empty
stdout
Total A: 2
Total B: 4
Total C: 2
Total D: 1
Total F: 1
Total I: 2