问题描述:有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
作者:何知令
发表时间:2017年2月9日
输入:学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
作者:何知令
发表时间:2017年2月9日
输入:学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出:各门课的平均成绩最高分的学生的数据(包括学号、姓名、3门课成绩)
代码:
/*
问题描述:有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
作者:何知令
发表时间:2017年2月9日
输入:学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出:各门课的平均成绩最高分的学生的数据(包括学号、姓名、3门课成绩)
*/
#include <stdio.h>
#include <stdlib.h>
#define N 100
struct student
{
char Id[10];
char name[80];
int math;
int English;
int C;
int sum;
};
int main()
{
int i;
int n;
int math_ever,English_ever,C_ever;
int highest_greads_owner;
struct student stu[N];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %s %d %d %d",stu[i].Id,stu[i].name,&stu[i].math,&stu[i].English,&stu[i].C);
stu[i].sum=stu[i].math+stu[i].English+stu[i].C;
}
math_ever=(stu[0].math+stu[1].math)/2;
English_ever=(stu[0].English+stu[1].English)/2;
C_ever=(stu[0].C+stu[1].C)/2;
printf("%d %d %d\n",math_ever,English_ever,C_ever);
if(stu[0].sum>stu[1].sum)
highest_greads_owner=0;
else
highest_greads_owner=1;
printf("%s %s %d %d %d\n",stu[highest_greads_owner].Id,stu[highest_greads_owner].name,stu[highest_greads_owner].math,stu[highest_greads_owner].English,stu[highest_greads_owner].C);
return 0;
}
程序运行结果展示:
知识点总结:结构体
学习心得:测试结果为:答案错误,一脸蒙蔽。。。我错啦,可错在哪?????