1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| #include <stdio.h> #include <string.h>
struct Student { char name[20]; int english; int math; int politics; int specialised; int SUM = english + math + politics + specialised; };
int fun(struct Student aa[], int (*p)(struct Student aa[])) { return p(aa);; }
int fun2(struct Student aa[]);
int main() {
struct Student aa[4] = { {"越江", 65, 85, 60, 110}, {"张三", 77, 100, 60, 60}, {"李四", 60, 60, 60, 60}, {"王五", 75, 75, 75, 75} }; int max_index = fun(aa,fun2); printf("获得最高分的是国服%s,分数为:%d", aa[max_index].name, aa[max_index].SUM); }
int fun2(struct Student aa[]) { int av_english, av_math, av_politcs, av_specialised; char av_name[20]; int sum = 0; int sum2 = 0; int sum3 = 0; int sum4 = 0; for (int i = 0; i < 4; i++) { sum += aa[i].english; sum2 += aa[i].math; sum3 += aa[i].politics; sum4 += aa[i].specialised; } av_english = sum / 4; av_math = sum2 / 4; av_politcs = sum3 / 4; av_specialised = sum4 / 4; printf("平均成绩\n英语:%d\n数学:%d\n政治:%d\n专业课:%d\n", av_english, av_math, av_politcs, av_specialised);
int max_index = 0; for (int i = 0; i < 4; i++) { if (aa[i].SUM > aa[max_index].SUM) { max_index = i; } }
return max_index; }
|