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

x. Solution please rate - thanks ignore the message --this is complete #include

ID: 3612902 • Letter: X

Question

x.

Explanation / Answer

please rate - thanks ignore the message --this is complete #include #include #include #include #define MAX_NAME_LEN 50 struct record{ char name[MAX_NAME_LEN+1]; int number; int quiz1; int quiz2; int midterm; int final; float numeric; struct record *next; }; struct record *first = NULL, *ptr; // points to first studentrecord struct record *new_record; // points to the next node forinsert void insert_rec(struct record record); //insert new records intolist void print_class(void); //print out list of student records void average(int count); //print out average class score int read_line(char str[], int n); //function declaration, will readin names of students int main(void) { int count=0; char choice; struct record record; do{ printf("Enter the student's name: "); scanf("%s", record.name); read_line(record.name, MAX_NAME_LEN); printf("Enter the student's grade for quiz #1: "); scanf("%d", &record.quiz1); printf("Enter the student's grade for quiz #2: "); scanf("%d", &record.quiz2); printf("Enter the student's grade for midterm: "); scanf("%d", &record.midterm); printf("Enter the student's grade for final: "); scanf("%d", &record.final); record.numeric = (((record.quiz1+record.quiz2) *1.25)+(record.midterm * 0.25)+(record.final * 0.50)); printf("%s's numeric score for the entire course is %.2f ",record.name, record.numeric); insert_rec(record); printf(" "); printf("Would you like to enter another student record? y(yes) orn(no)?"); scanf(" %c", &choice); count++; }while(choice != 'n'); print_class(); average(count); getchar(); return 0; } int read_line(char str[], int n) //reads string into an array { int ch, i = 0; while (isspace(ch = getchar())) ; str[i++] = ch; while ((ch = getchar()) != ' ') { if (i next = NULL; } else { new_record =(struct record *) malloc(sizeof(struct record)); *new_record = record; new_record->next = first; first = new_record; } } void print_class(void) { struct record *p; printf(" Name     Quiz1 Quiz2 MidtermFinal Total "); printf("----------------------------------------------------------------------- "); for(p = first; p != NULL; p = p->next) { printf("%6s %5d %7d %6d %6d %7.1f ", p->name, p->quiz1,p->quiz2, p->midterm, p->final, p->numeric); } printf(" "); } void average(int n) { struct record *q; float sum_q1=0, sum_q2=0, sum_mid=0, sum_fin=0, sum_total=0; float average_q1, average_q2, average_mid, average_fin,average_total; printf("          Quiz1 Quiz2 Midterm Final Total "); printf("----------------------------------------------------------------------- "); for(q = first; q !=NULL; q = q->next) { sum_q1 += q->quiz1; sum_q2 += q->quiz2; sum_mid += q->midterm; sum_fin += q->final; sum_total += q->numeric; } average_q1 = (sum_q1 / n); average_q2 = (sum_q2 / n) ; average_mid = (sum_mid / n) ; average_fin = (sum_fin / n); average_total = (sum_total / n) ; printf("Averages%7.1f%6.1f%7.1f%7.1f%9.3f ", average_q1,average_q2, average_mid, average_fin, average_total); getch(); }