话不多说,直接上代码,小白一个,如有错误,评论必修正。
#include <stdio.h>
#include <stdlib.h>
#define m 4 //学生个数
#define n 3 //课程数
struct stu
{
char xuehao[100];
char name[10];
float chengji[n];
}p[m];
void abb(struct stu p[])
{
int a, b, e = 0, f = 0;
float d = 0, g = 0, c;
for (a = 0; a <= m - 1; a++)
{
c = 0;
for (b = 0; b <= n - 1; b++)
c += p[a].chengji[b];
d += c; //总成绩
if (e < c) //判断成绩大小
f = a;
}
d = d / m;
for (b = 0; b < n; b++)
g += p[f].chengji[b];
g = g / n;
printf("总平均成绩为%f\n", d);
printf("最高分的学生的数据为:%s %s ", p[f].xuehao, p[f].name);
for (b = 0; b <= n - 1; b++)
printf("%f ", p[f].chengji[b]);
printf("平均成绩为:%f", g);
}
int main()
{
int a, b, c, d;
for (a = 0; a <= m - 1; a++)
{
b = a + 1;
printf("请输入第%d个学生的信息(学号 姓名 第一科成绩 第二科成绩 第三科成绩):", b);
for (d = 0; (p[a].xuehao[d] = getchar()) != ' '; d++); //输入学号,空格结束输入
p[a].xuehao[++d] = '\0';
for (d = 0; (p[a].name[d] = getchar()) != ' '; d++); //输入名字,空格结束
p[a].name[++d] = '\0';
for (c = 0; c <= n-1; c++)
scanf_s("%f", &p[a].chengji[c]); //输入成绩,空格结束
}
abb(p);
return 0;
}