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

 
  
  1. #include<iostream>  
  2. #include<iomanip>  
  3. using namespace std;  
  4. const int m=10;//学生人数  
  5. struct Student  
  6. {  
  7.     int num;  
  8.     char name[10];  
  9.     float score[3];  
  10. };  
  11. int main()  
  12. {     
  13.     void input (Student (&stu)[m]);  
  14.     void print (Student (&stu)[m]);  
  15.     Student s[m];  
  16.     input(s);  
  17.     print(s);  
  18.  
  19. }  
  20. void print (Student (&stu)[m])  
  21. {  
  22.     int i,j;  
  23.     int max_i=0;  
  24.     float max=0.0,ave=0.0,max_ave=0.0;  
  25.     cout<<"  №.    Name   Score1 Score2 Score3 average"<<endl;  
  26.     for(i=0;i<m;i++)  
  27.     {   ave=0;  
  28.        cout<<setw(5)<<stu[i].num<<setw(8)<<stu[i].name;  
  29.  
  30.            for(j=0;j<3;j++)  
  31.            {  
  32.               ave=ave+stu[i].score[j];  
  33.                
  34.               cout<<setw(7)<<stu[i].score[j];  
  35.            }  
  36.        max_ave=max_ave+(ave/3);  
  37.        if(ave>max)  
  38.        {  
  39.            max=ave;  
  40.            max_i=i;//记录是第几人  
  41.        }  
  42.        cout<<"     "<<setprecision(2)<<ave/3.0;  
  43.        cout<<endl;  
  44.     }  
  45.     cout<<"========总平均成绩=======: "<<(max_ave/m)<<endl;  
  46.     cout<<"========最高分数的是======="<<endl;  
  47.     cout<<setw(5)<<stu[max_i].num<<setw(8)<<stu[max_i].name;  
  48.     for(j=0;j<3;j++)  
  49.     {  
  50.         cout<<setw(7)<<stu[max_i].score[j];  
  51.     }  
  52.     cout<<"     "<<setprecision(2)<<max/3.0;  
  53.       
  54. }  
  55. void input (Student (&stu)[m])  
  56. {  
  57.     int i,j;  
  58.       
  59.     cout<<"请输入学号 姓名 3门课的成绩"<<endl;  
  60.     for(i=0;i<m;i++)  
  61.     {   cin>>stu[i].num>>stu[i].name;  
  62.         for(j=0;j<3;j++)  
  63.             cin>>stu[i].score[j];  
  64.     }