Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- struct score
- {
- float lab;
- float exam1;
- float exam2;
- float finalExam;
- float weightedScore;
- int letterGrade;
- };
- struct student
- {
- char name[15];
- int ID;
- char grades[10];
- struct score grade;
- };
- struct student students[10] = {
- { "J. Dornan", 1539, "senior"},
- { "C. Firth", 2591, "freshman"},
- { "C. Hemsworth", 3591, "freshman"},
- { "J. Ehle", 591, "sophomore"},
- { "M. Pena", 3596, "junior"},
- { "M. Wahlberg", 1269, "freshman"},
- { "S. Johansson", 1558, "sophomore"},
- { "B. Cumberbatch", 2691, "freshman"},
- { "Z. Saldana", 5353, "freshman"},
- { "S. Bullock", 1190, "sophomore"}
- };
- struct score grade[10] = {
- {78, 83.5, 90.5, 80.5},
- {90, 79.0, 86.0, 75.0},
- {85, 89.5, 77.5, 82.5},
- {76, 79.5, 96.5, 76.0},
- {91, 88.5, 76.0, 83.5},
- {68, 95.5, 86.5, 95.5},
- {75, 90.5, 88.5, 80.5},
- {78, 87.5, 78.5, 90.5},
- {82, 88.0, 98.0, 80.5},
- {86, 93.5, 92.5, 74.5}
- };
- void weightedGrade(struct student students[], struct score grade[]);
- void average(struct score grade[]);
- void lowestGrade(struct score grade[]);
- void highestGrade(struct score grade[]);
- void letterGrade(struct score grade[]);
- int main (void)
- {
- int i;
- Bullock\n");
- weightedGrade(students, grade);
- average(grade);
- lowestGrade(grade);
- highestGrade(grade);
- letterGrade(grade);
- return 0;
- }
- void weightedGrade (struct student students[], struct score grade[])
- {
- for (int i = 0; i < 10; ++i)
- {
- grade[i].weightedScore = ((grade[i].lab * .3) + (grade[i].exam1 * .2) + (grade[i].exam2 * .2) + (grade[i].finalExam * .3));
- if (grade[i].weightedScore >= 90)
- grade[i].letterGrade = 'A';
- else if ((grade[i].weightedScore >= 80) && (grade[i].weightedScore < 90))
- grade[i].letterGrade = 'B';
- else if ((grade[i].weightedScore >= 70) && (grade[i].weightedScore < 80))
- grade[i].letterGrade = 'C';
- else if ((grade[i].weightedScore >= 60) && (grade[i].weightedScore < 70))
- grade[i].letterGrade = 'D';
- else
- grade[i].letterGrade = 'F';
- printf ("%.2f\n", grade[i].weightedScore);
- }
- }
- void average (struct score grade[])
- {
- float average_lab = 0, average_exam1 = 0, average_exam2 = 0, average_finalExam = 0;
- printf ("\n=========================");
- printf ("\n The average scores are: \n --------------------- \n");
- for (int i = 0; i < 10; ++i)
- {
- average_lab += grade[i].lab;
- average_exam1 += grade[i].exam1;
- average_exam2 += grade[i].exam2;
- average_finalExam += grade[i].finalExam;
- }
- printf (" Lab score = %.2f", average_lab/10);
- printf ("\n Exam 1 score = %.2f", average_exam1/10);
- printf ("\n Exam 2 score = %.2f", average_exam2/10);
- printf ("\n Final exam score = %.2f \n", average_finalExam/10);
- }
- void lowestGrade (struct score grade[])
- {
- float minLabScore = grade[0].lab, minExamScore1 = grade[0].exam1, minExamScore2 = grade[0].exam2, minFinalExam = grade[0].finalExam;
- printf ("\n=========================");
- printf ("\n The lowest scores are: \n ------------------------ \n");
- for (int i = 1; i < 10; ++i) {
- if (grade[i].lab < minLabScore)
- minLabScore = grade[i].lab;
- if (grade[i].exam1 < minExamScore1)
- minExamScore1 = grade[i].exam1;
- if (grade[i].exam2 < minExamScore2)
- minExamScore2 = grade[i].exam2;
- if (grade[i].finalExam < minFinalExam)
- minFinalExam = grade[i].finalExam;
- }
- printf (" Lab score = %.2f", minLabScore);
- printf ("\n Exam 1 score = %.2f", minExamScore1);
- printf ("\n Exam 2 score = %.2f", minExamScore2);
- printf ("\n Final exam score = %.2f \n", minFinalExam);
- }
- void highestGrade (struct score grade[])
- {
- float maxLabScore = grade[0].lab, maxExamScore1 = grade[0].exam1, maxExamScore2 = grade[0].exam2, maxFinalExam = grade[0].finalExam;;
- printf ("\n=========================");
- printf ("\n The highest scores are: \n -----------------------\n");
- for (int i = 1; i < 10; ++i) {
- if (grade[i].lab > maxLabScore)
- maxLabScore = grade[i].lab;
- if (grade[i].exam1 > maxExamScore1)
- maxExamScore1 = grade[i].exam1;
- if (grade[i].exam2 > maxExamScore2)
- maxExamScore2 = grade[i].exam2;
- if (grade[i].finalExam > maxFinalExam)
- maxFinalExam = grade[i].finalExam;
- }
- printf (" Lab score = %.2f", maxLabScore);
- printf ("\n Exam 1 score = %.2f", maxExamScore1);
- printf ("\n Exam 2 score = %.2f", maxExamScore2);
- printf ("\n Final exam score = %.2f \n", maxFinalExam);
- }
- void letterGrade (struct score grade[])
- {
- int A = 0, B = 0, C = 0, D = 0, F = 0;
- printf ("\n=========================");
- printf ("\n Letter Grade Count: \n -----------------\n");
- for (int i = 0; i < 10; ++i)
- {
- switch (grade[i].letterGrade)
- {
- case 'A':
- ++A;
- break;
- case 'B':
- ++B;
- break;
- case 'C':
- ++C;
- break;
- case 'D':
- ++D;
- break;
- default:
- ++F;
- break;
- }
- }
- printf (" A's = %i", A);
- printf ("\n B's = %i", B);
- printf ("\n C's = %i", C);
- printf ("\n D's = %i", D);
- printf ("\n F's = %i", F);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement