有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
- #include<iostream>
- #include<iomanip>
- using namespace std;
- const int m=10;//学生人数
- struct Student
- {
- int num;
- char name[10];
- float score[3];
- };
- int main()
- {
- void input (Student (&stu)[m]);
- void print (Student (&stu)[m]);
- Student s[m];
- input(s);
- print(s);
- }
- void print (Student (&stu)[m])
- {
- int i,j;
- int max_i=0;
- float max=0.0,ave=0.0,max_ave=0.0;
- cout<<" №. Name Score1 Score2 Score3 average"<<endl;
- for(i=0;i<m;i++)
- { ave=0;
- cout<<setw(5)<<stu[i].num<<setw(8)<<stu[i].name;
- for(j=0;j<3;j++)
- {
- ave=ave+stu[i].score[j];
- cout<<setw(7)<<stu[i].score[j];
- }
- max_ave=max_ave+(ave/3);
- if(ave>max)
- {
- max=ave;
- max_i=i;//记录是第几人
- }
- cout<<" "<<setprecision(2)<<ave/3.0;
- cout<<endl;
- }
- cout<<"========总平均成绩=======: "<<(max_ave/m)<<endl;
- cout<<"========最高分数的是======="<<endl;
- cout<<setw(5)<<stu[max_i].num<<setw(8)<<stu[max_i].name;
- for(j=0;j<3;j++)
- {
- cout<<setw(7)<<stu[max_i].score[j];
- }
- cout<<" "<<setprecision(2)<<max/3.0;
- }
- void input (Student (&stu)[m])
- {
- int i,j;
- cout<<"请输入学号 姓名 3门课的成绩"<<endl;
- for(i=0;i<m;i++)
- { cin>>stu[i].num>>stu[i].name;
- for(j=0;j<3;j++)
- cin>>stu[i].score[j];
- }
- }