#include<stdio.h>
#define N 1
struct student
{
char name[100];
int m,c,y,h,w,sum;
};
int main()
{
struct student stu[N+1];
int i,m_ave=0,c_ave=0,y_ave=0,h_ave=0,w_ave=0,max;
printf("请输入各学生的姓名、语文、数学、英语、地理、生物\n");
for(i=1;i<=N;i++)
{
printf("第%d个学生:",i);
scanf("%s",stu[i].name);
scanf("%d%d%d%d%d",&stu[i].m,&stu[i].c,&stu[i].y,&stu[i].h,&stu[i].w,stu[i].sum);
stu[i].sum=(stu[i].m+stu[i].c+stu[i].y+stu[i].h+stu[i].w)/5;
m_ave+=stu[i].m;
c_ave+=stu[i].c;
y_ave+=stu[i].y;
h_ave+=stu[i].h;
w_ave+=stu[i].w;
}
stu[0].m=m_ave/N;
stu[0].c=c_ave/N;
stu[0].y=y_ave/N;
stu[0].h=h_ave/N;
stu[0].w=w_ave/N;
for(i=1;i<=N;i++)
printf("%s\t%d\t%d\t%d\t%d\t%d\t个人平均分:%d\n",stu[i].name,stu[i].c,stu[i].y,stu[i].h,stu[i].w,stu[i].m,stu[i].sum);
printf("各科平均:\t%d\t%d\t%d\t%d\t%d\n",stu[0].m,stu[0].c,stu[0].y,stu[0].h,stu[0].w);
}
第三问怎么编进去
2:编程实现输入 10 个学生的姓名以及 5 门课的成绩。
1)计算每个学生的平均分
2)计算每门课的平均分
3)分析出每门课的最高分和对应的学生姓名。
你的修改了下,你看看
#include<stdio.h>
#define N 3
#define KN 5
struct student
{
char name[20];
int ke[KN];
float ave;
};
int main()
{
char kname[KN][10]={"语文","数学","英语","地理","生物"};
struct student stu[N] = {0};
int i;
int maxke[KN] = {0};//最高分
int maxname[KN] = {0};//最高分学生号
float aveke[KN] = {0.0}; //每门课平均分
printf("请输入各学生的姓名、语文、数学、英语、地理、生物\n");
for(i = 0; i < N; i++)
{
printf("第%d个学生:", i + 1);
scanf("%s", stu[i].name);
for(int j = 0; j < KN; j++)
{
scanf("%d", &stu[i].ke[j]);
stu[i].ave += stu[i].ke[j]; //每个人的总分
aveke[j] += stu[i].ke[j]; //每门课的总分
if(stu[i].ke[j] > maxke[j])
{
maxke[j] = stu[i].ke[j]; //记录最高分
maxname[j] = i; //记录最高分学生号
}
}
stu[i].ave /= KN;
}
for(i = 0; i < N; i++)
{
printf("%s", stu[i].name);
for(int j = 0; j < KN; j++)
printf("\t%d", stu[i].ke[j]);
printf("\t个人平均分:%.2f\n", stu[i].ave);
}
printf("各科平均:");
for(int j = 0; j < KN; j++)
printf("\t%.2f", aveke[j] / N);
printf("\n各科最高分:\n");
for(int j = 0; j < KN; j++)
{
printf("%s:%d %s\n",kname[j],maxke[j],stu[maxname[j]].name );
}
return 0;
}