Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

#include <stdio.h> float calculate_percent(float score, float max_score); double

ID: 3926588 • Letter: #

Question

#include <stdio.h>


   float calculate_percent(float score, float max_score);


   double getAvg (float score0, float score1, float score2);


   char getGradeLetter (float score);


   void print_line(char line, int times);




int main()
{
   print_line ('*',20);

   int choice=0;
   double average=0;
   char name [20];
   int scores [3];
   char grade;

   do
   {
   printf("1. Enter username 2. Enter exam scores 3. Display average exam scores 4. Display summary 5. Quit");
   printf(" Enter choice:");
   scanf("%i", &choice);

   switch (choice)
   {
   case 1:
   printf("Enter name:");
   scanf("%s", name);
   break;

   case 2:
   for(int i = 0; i < 3; i++)
   {
   printf("Enter score of exam #%i:", i+1);
   scanf("%d", &scores[i]);

   }//end of for loop


   break;

   case 3:

   average = getAvg (scores[0], scores[1], scores[2]);

   if(average != 0)
   {
   printf("Your average score is %.2f%% ", average);
   }

   else
   {
   printf("Error, please use menu to enter exam scores first... ");
   }
   break;

   case 4:

   grade = getGradeLetter (average);
   if (average != 0)
   {
   printf("Hello %s, your exam scores of %i, %i and %i has an average of %.2f%% with a letter grade %c ", name, scores[0], scores[1], scores[2], average, grade );
   }

   else
   {
   printf("Error, please use menu to enter name and/or scores first... ");
   }

   break;

   case 5:
   printf("Goodbye... ");
   return 0;
   break;

   default:
   printf("Invalid choice... ");
   }//end of swithc statement

   }while(choice != 5);

}//end of main


float calculate_percent(float score, float max_score)
{
float percentage = (score/max_score)*100;
return percentage;
}

double getAvg (float score0, float score1, float score2)
{
float average = (score0 + score1 +score2)/3.00;
return average;
}

char getGradeLetter (float score)
{
char grade = 'F';
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';
}
return grade;
}

void print_line(char line, int times)
{
printf(" ");
for(int i=0; i < times; i++)
printf("%c",line);
printf(" ");
}

Explanation / Answer

Find the solution below:

===========================================================================

#include<stdio.h>
#include<stdlib.h>
int scores_array[100];
static int arrayCount=0;
static int nameCount=0;
int numofExams;
char userName[10]="";
float getAvg(int *ptr, int size);
char getGradeLetter (float score);
void main() {
   int choice;

   LOOP:
   do {

       printf("***************************************");
       printf(
               "1. Enter username 2. Enter exam scores 3. Display average exam scores 4. Display summary 5. Quit");
       printf(" Enter choice:");
       fflush(stdout);
       scanf("%i", &choice);

       switch (choice) {
       case 1:
           printf("Enter name:");
           fflush(stdout);
           scanf("%s",userName);
           nameCount++;
           break;
       SIZEGO:
       case 2:
           printf("enter the number of exams: ");
           fflush(stdout);
           scanf("%d",&numofExams);
           for (int i = 0; i < numofExams; i++) {
               if(i==100)
               {
                   printf("array size is exceeded ");
                   goto SIZEGO;
               }
               printf("Enter score of exam #%i:", i + 1);
               scores_array[i]=getExamScoreFromUser();
               arrayCount++;
           } //end of for loop
           break;

       case 3:

           if(arrayCount>0)
           {
               float average=getAvg(scores_array,numofExams);
               printf("Average of Scores is: %f ",average);
           }
           else
           {
               printf("please use the menu to enter the scores first ");
               goto LOOP;
           }
               break;

       case 4:

           if(arrayCount>0 && nameCount>0)
           {
               printf("%s,",userName);
               printf("your exam scores were: ");
               for(int i=0;i<numofExams;i++)
               printf("%d,",scores_array[i]);
               float avg=getAvg(scores_array,numofExams);
               printf(" Average is: %f, ",avg);
               char grade = getGradeLetter(avg);
               printf("with letter grade: %c ",grade);
           }
           else
           {
               printf("please use the menu to enter the scores and name first ");
               goto LOOP;
           }

           break;

       case 5:
           printf("you have choosen quit...");
           exit(0);
           break;

       default:
           printf("Invalid choice... ");
       } //end of swithc statement

   } while (choice != 5);

}
float getAvg(int *ptr, int size) {
   float sum = 0;
   for (int i = 0; i < size; i++)
       sum += ptr[i];
   return (float) (sum / size);
}

int getExamScoreFromUser() {
   int score;
   printf(" enter the exam score");
   fflush(stdout);
   scanf("%d", &score);
   return score;
}

char getGradeLetter (float score)
{
char grade = 'F';
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';
}
return grade;
}


===========================================================================

INPUT / OUTPUT:

***************************************
1. Enter username
2. Enter exam scores
3. Display average exam scores
4. Display summary
5. Quit
Enter choice:1
Enter name:xyz
***************************************
1. Enter username
2. Enter exam scores
3. Display average exam scores
4. Display summary
5. Quit
Enter choice:2
enter the number of exams: 5
Enter score of exam #1:
enter the exam score15
Enter score of exam #2:
enter the exam score25
Enter score of exam #3:
enter the exam score64
Enter score of exam #4:
enter the exam score95
Enter score of exam #5:
enter the exam score53
***************************************
1. Enter username
2. Enter exam scores
3. Display average exam scores
4. Display summary
5. Quit
Enter choice:3
Average of Scores is: 50.400002
***************************************
1. Enter username
2. Enter exam scores
3. Display average exam scores
4. Display summary
5. Quit
Enter choice:4
xyz,your exam scores were: 15,25,64,95,53, Average is: 50.400002, with letter grade: F
***************************************
1. Enter username
2. Enter exam scores
3. Display average exam scores
4. Display summary
5. Quit
Enter choice:5
you have choosen quit...

==========================================================================