fork download
  1. // This program allows a user to enter student names and the grades for allows
  2. // of their final exams. It then outputs the student name and GPA.
  3. // CMIS102 Homework 3
  4. // C Code
  5.  
  6. #include <stdio.h>
  7. #include <string.h>
  8.  
  9. int main(void) {
  10. // Declare and initialize variables
  11. char studentName[100];
  12. char letGrade;
  13. int numGrade;
  14. int gradeTotal = 0;
  15. float count, gpa;
  16.  
  17. // First loop
  18. // Initializes count and gradeTotal each time the loop
  19. // is executed and prompts for a student name
  20. while(1) {
  21. count = 0;
  22. gradeTotal = 0;
  23. printf("Please enter a student name (0 to exit): ");
  24. scanf("%s", studentName);
  25. printf("%s\n", studentName);
  26.  
  27. // If user enters 0, exit program
  28. if (strcmp(studentName, "0") == 0) {
  29. printf("Exiting...\n");
  30. break;
  31. }
  32.  
  33. // Enter nested while loop
  34. // prompts user for letter grades
  35. else {
  36. while(1) {
  37. printf("Enter capital letter grade for %s (0 if finished): ", studentName);
  38. scanf(" %c", &letGrade);
  39. printf("%c\n", letGrade);
  40.  
  41. // If user enters 0, output name and GPA, break loop and go to parent loop
  42. if (letGrade == '0') {
  43. // Compute GPA as an average
  44. gpa = gradeTotal / count;
  45. printf("%s has a GPA of: %.2f\n", studentName, gpa);
  46. printf("Continuing to the next student...\n");
  47. break;
  48. }
  49.  
  50. // If not zero, then identify grade integer value from letter grade
  51. else {
  52. if (letGrade == 'A')
  53. numGrade = 4;
  54. if (letGrade == 'B')
  55. numGrade = 3;
  56. if (letGrade == 'C')
  57. numGrade = 2;
  58. if (letGrade == 'D')
  59. numGrade = 1;
  60. if (letGrade == 'F')
  61. numGrade = 0;
  62.  
  63. // Add grade value to gradeTotal
  64. gradeTotal += numGrade;
  65.  
  66. // Add one to count for grade entered
  67. count += 1;
  68. }
  69. }
  70. }
  71. }
  72. return 0;
  73. }
  74.  
Success #stdin #stdout 0s 2160KB
stdin
Bennett
A
B
C
D
F
0
0
stdout
Please enter a student name (0 to exit): Bennett
Enter capital letter grade for Bennett (0 if finished): A
Enter capital letter grade for Bennett (0 if finished): B
Enter capital letter grade for Bennett (0 if finished): C
Enter capital letter grade for Bennett (0 if finished): D
Enter capital letter grade for Bennett (0 if finished): F
Enter capital letter grade for Bennett (0 if finished): 0
Bennett has a GPA of: 2.00
Continuing to the next student...
Please enter a student name (0 to exit): 0
Exiting...