#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...
==========================================================================
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.