要求打印出每門課的平均成績,以及三門課總分最高的學生的資料(包括學號、姓名、3門課的成績,三門課的總分)。
阿新 • • 發佈:2019-01-13
- 實驗八
有50個學生,每個學生的資料包括學號、姓名、3門課的成績,從鍵盤輸入50個學生資料,要求打印出每門課的平均成績,以及三門課總分最高的學生的資料(包括學號、姓名、3門課的成績,三門課的總分)。
/**要求打印出每門課的平均成績,以及三門課總分最高的學生的資料**/ #include<stdio.h> #include<stdlib.h> struct stu { char name[11]; char num[11]; int gra1, gra2, gra3; int sum1; }; struct stu p[51]; struct stu t; int main(void) { int i; int n; int j; double ex1, ex2, ex3; printf("Input n\n"); scanf("%d", &n); for(i = 0; i < n; i++) { p[i].sum1 = 0; scanf("%s %s %d %d %d", p[i].num, p[i].name, &p[i].gra1, &p[i].gra2, &p[i].gra3); } ex1 = 0; ex2 = 0; ex3 = 0; for(i = 0; i < n; i++) { ex1 += p[i].gra1; ex2 += p[i].gra2; ex3 += p[i].gra3; } ex1 /= n; ex2 /= n; ex3 /= n; for(i = 0; i < n; i++) { p[i].sum1 += (p[i].gra1 + p[i].gra2 + p[i].gra3); } for(i = 0; i < n - 1; i++) { for(j = 0; j < n - 1 - i; j++) { if(p[j].sum1 < p[j + 1].sum1) { t = p[j]; p[j] = p[j + 1]; p[j + 1] = t; } } } for(i = 0; i < n; i++) { printf("%s %s %d %d %d %d", p[i].num, p[i].name, p[i].gra1, p[i].gra2, p[i].gra3, p[i].sum1); } return 0; }