大神帮忙!!!最高分学生信息输不出
有若干个学生,每个学生的数据包括学号、姓名、五门课的成绩,从键盘输入若干个学生数据,要求打印出五门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、五门课的成绩、平均分数)。用一个input函数输入5个学生数据;
用一个average函数求总平均分;
用max函数找出最高分学生数据;
总平均分和每科最高分的学生的数据都在主函数中输出。
提示:定义结构体如下:
struct student {
char num[6];
char name[10];
float score[6]; /* 其中最后一个元素用来保存平均成
#include <stdio.h>
#define n 5
float average(struct student stu[n]);
int max(struct student stu[n]);
struct student
{ char num[6];
char name[10];
float score[6]; /* 其中最后一个元素用来保存平均成绩 */
}; struct student stu[n];
void input(struct student stu[n])
{
int i,j;
for(i=0;i<n;i++)
{
printf("学号: ");
scanf("%s",stu[i].num);
printf("姓名: ");
scanf("%s",stu[i].name);
printf("五门学科的成绩:\n");
scanf("%f %f %f %f %f:",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);
printf("\n");
}
}
float average(struct student stu[n])
{
int j,i=0;
float sav=0,sum=0,ave;
for(;i<n;i++)
{
for(j=0;j<5;j++)
{
sum+=stu[i].score[j];
}
stu[i].score[6]=sum/5;
printf("学生%d的平均分为%5.2f",i+1,stu[i].score[6]);
printf("\n");
sav+=stu[i].score[6];
sum=0;
}
ave=sav/n;
return ave;
}
int max(struct student stu[n])
{
int i=1,p;
float max;
max=stu[0].score[6];
for(;i<n;i++)
{
if(max<stu[i].score[6])
{
max=stu[i].score[6];
p=i;
}
}
return p;
}
void main()
{
int i,p;
float ave;
input(stu);
ave=average(stu);
printf("五门课的总平均分为%5.2f\n",ave);
printf("\n");
p=max(stu);
printf("最高分的学生信息:\n学号:%s\n姓名:%s\n",stu[p].num,stu[p].name);
printf("五门学科的成绩:\n"); printf("%5.2f %5.2f %5.2f %5.2f %5.2f\n",stu[p].score[0],stu[p].score[1],stu[p].score[2],stu[p].score[3],stu[p].score[4]);
printf("平均分为%5.2f\n",stu[p].score[6]);
}
绩 */#define n 5
float average(struct student stu[n]);
int max(struct student stu[n]);
struct student
{ char num[6];
char name[10];
float score[6]; /* 其中最后一个元素用来保存平均成绩 */
}; struct student stu[n];
void input(struct student stu[n])
{
int i,j;
for(i=0;i<n;i++)
{
printf("学号: ");
scanf("%s",stu[i].num);
printf("姓名: ");
scanf("%s",stu[i].name);
printf("五门学科的成绩:\n");
scanf("%f %f %f %f %f:",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);
printf("\n");
}
}
float average(struct student stu[n])
{
int j,i=0;
float sav=0,sum=0,ave;
for(;i<n;i++)
{
for(j=0;j<5;j++)
{
sum+=stu[i].score[j];
}
stu[i].score[6]=sum/5;
printf("学生%d的平均分为%5.2f",i+1,stu[i].score[6]);
printf("\n");
sav+=stu[i].score[6];
sum=0;
}
ave=sav/n;
return ave;
}
int max(struct student stu[n])
{
int i=1,p;
float max;
max=stu[0].score[6];
for(;i<n;i++)
{
if(max<stu[i].score[6])
{
max=stu[i].score[6];
p=i;
}
}
return p;
}
void main()
{
int i,p;
float ave;
input(stu);
ave=average(stu);
printf("五门课的总平均分为%5.2f\n",ave);
printf("\n");
p=max(stu);
printf("最高分的学生信息:\n学号:%s\n姓名:%s\n",stu[p].num,stu[p].name);
printf("五门学科的成绩:\n"); printf("%5.2f %5.2f %5.2f %5.2f %5.2f\n",stu[p].score[0],stu[p].score[1],stu[p].score[2],stu[p].score[3],stu[p].score[4]);
printf("平均分为%5.2f\n",stu[p].score[6]);
}
};
[ 本帖最后由 litterpay 于 2012-12-30 15:40 编辑 ]