C语言编程 用结构体的知识编程输入并打印学生的成绩与信息

有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)

#include<stdio.h>
#define N 10

struct Student
{
char id[8],name[8];
int s1,s2,s3;
float ave_s;
};

int main()
{
struct Student s[N];
int i,p;
/* 输入学生成绩信息,并计算平均成绩 */
for(i=0; i<N; i++)
{
printf("输入学生 %d 的学号 姓名 和3门课的成绩:",i+1);
scanf("%s%s%d%d%d",&s[i].id,&s[i].name,&s[i].s1,&s[i].s2,&s[i].s3);
s[i].ave_s=(s[i].s1+s[i].s2+s[i].s3)/3.0;
}

/* 输出每个学生的平均成绩 */
printf(" 学号 平均成绩\n");
for(i=0; i<N; i++)
printf("%8s%8.1f\n\n",s[i].id,s[i].ave_s);

/* 查找平均成绩最高的学生 */
p=0;
for(i=0; i<N; i++)
if(s[i].ave_s>s[p].ave_s)
p=i;
/* 输出平均成绩最高的学生信息 */
printf(" 学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("%8s%8s%8d%8d%8d%8.1f\n",s[p].id,s[p].name,s[p].s1,s[p].s2,s[p].s3,s[p].ave_s);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-22
楼上的只要注意成绩是float型,就可以了