问题及代码:
/*烟台大学计算机与控制工程学院
*文件名称:成绩处理
*作者:马艳艳
*完成日期:2016年4月2日
*问题描述:有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
*输入描述:学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
*输出描述:各门课的平均成绩最高分的学生的数据(包括学号、姓名、3门课成绩)
*/
#include<iostream>
using namespace std;
struct student
{
char num[10];
char name[10];
int a,b,c;
}stu[100];
int main()
{
int n,i,t;
float max1=-10,max2=-10,max3=-10;
float ave1,ave2,ave3;
float sum1=0,sum2=0,sum3=0;
cin>>n;
for(i=0;i<n;i++)
{
cin>>stu[i].num>>stu[i].name>>stu[i].a>>stu[i].b>>stu[i].c;
}
for(i=0;i<n;i++)
{
sum1+=stu[i].a;
sum2+=stu[i].b;
sum3+=stu[i].c;
}
ave1=sum1/n;
ave2=sum2/n;
ave3=sum3/n;
for(i=0;i<n;i++)
{
if(max1<stu[i].a)
{
max1=stu[i].a;
t=i;
};
if(max2<stu[i].b)
{
max2=stu[i].b;
t=i;
};
if(max3<stu[i].c)
{
max3=stu[i].c;
t=i;
};
}
cout<<ave1<<" "<<ave2<<" "<<ave3<<endl;
cout<<stu[t].num<<" "<<stu[t].name<<" "<<max1<<" "<<max2<<" "<<max3<<endl;
return 0;
}
运行结果:
知识点总结:
结构算是差不多,还有算法。
学习心得:
写代码心要静