I know this is a really long problem, but all the answers i\'ve seen on here are
ID: 3532469 • Letter: I
Question
I know this is a really long problem, but all the answers i've seen on here are not actually pertinent to the program required. so i figured i'd post it, to! *note C language, not c++
"You are the official score keeper for the "C" Bowling Association (CBA). You should write a program
that will:
? a. Input date of game (three integers yyyy/mm/dd).
? b. Input bowler's first and last name initial (two separate characters) and three scores (three
integer of 0-300 ranges).
? c. Calculate average for that bowler.
? d. Assign stars to that bowler based on the following scale:
o Avg >= 200 4 stars
o Avg 170 to 199 3 stars
o Avg 125 to 169 2 stars
o Avg 100 to 124 1 star
o Avg < 100 no star
? e. Output the bowlers name, avg, and number of stars earned.
? f. Your program must be able to process any number of bowlers.
? g. Discover which bowler had the highest average and print out his/her name, average and
number of stars. (Assume there is only one bowler who had the highest average)
? h. Calculate and output the average of all the bowlers and the date of game.
Hint and requirement:
? Use scanf("%d/%d/%d", &y, &m, &d); to read yyyy/mm/dd. Use scanf("%*c%c%c", &fi,
&li); to read first and last initials after reading date with scanf(); If there is no other scanf()
used before the one you use to read first/last initials, you can just use the normal
scanf("%c%c", &fi, &li);
? No array is allowed to use in this program.? Assume input is reasonable and without error.
Implement all functionalities in your main() function and name this file as c.1.c.
Example:
This is the "C" bowling association
Please input the game date(yyyy/mm/dd):2012/10/14
Please input the bowler's first and last initial:bo
Please input the bowler's score:101 102 103
Bowler b. o. has average 102 and 1 star(s)
Please input the bowler's first and last initial:mr
Please input the bowler's score:202 204 203
Bowler m. r. has average 203 and 4 star(s)
Please input the bowler's first and last initial:^D
The best bowler on 2012/10/14 is:
Bowler m. r. has average 203 and 4 star(s)
The average of all bowlers in this game is 152" & there's a part 2!
Modify c.1.c to create a new file with name c.2.c. In c.2.c, you need to make following changes:
? i. Instead of output the number of stars in e. and g., your program must print the actual
appropriate sequence of stars (like "****"), not just a number.
? j. Step c., d. and e. in previous requirements must be written as separate functions. (e.x. int
average(int, int, int); int assignStar(int); void output(char, char, int, int);)
? k. Your program should be able to process multiple games in different dates. And it should
discover the bowler who had the highest average over these games and print out his/her name,
average and assigned sequence of stars. Your program should also print the date when the best
Explanation / Answer
#include<stdio.h>
int average(int a, int b, int c)
{
return (a+b+c)/3;
}
int assignStar(int k)
{
if(k>=200) return 4;
else if(k>=170 && k<=199) return 3;
else if(k>=125 && k<=169) return 2;
else if(k>=100 && k<=124) return 1;
return 0;
}
void output(char a, char b, int c, int d)
{
printf("Bowler %c. %c. has average %d and %d star(s)", a,b,c,d);
}
int main()
{
int y,m,d;
char f,l;
int max = 0;
char fi,li;
int count = 0;
int sum = 0;
int first, last , middle;
printf(" This is the "C" bowling association");
printf(" Please input the game date(yyyy/mm/dd):");
scanf("%d/%d/%d", &y, &m, &d);
while(true)
{
printf(" Please input the bowler's first and last initial: ");
if(scanf("%c%c", &fi, &li) !=2) return 0;
printf(" Please input the bowler's score: ");
scanf( " %d %d %d",&first,&last,&middle);
sum = sum + first + last + middle;
if(average(first,last,middle) > max)
{
max = average(first,last,middle); f = fi; l = li;
}
output(fi,li,average(first,last,middle),assignStar(average(first,last,middle)));
}
printf(" The best bowler on %d/%d/%d is ", y,m,d);
output(f,l,max,assignStar(max));
return 0;
}