#include <iostream>
#include <iomanip>
using namespace std;
class student
{public:
int a[11][6];
int n=2;
void shuru()
{
int i,j;
for(i=1;i<=n;i++)
{cout<<"输入第"<<i<<"学生的成绩"<<endl;
cout<<"第1门"<<endl;
cin>>a[i][1];
cout<<"第2门"<<endl;
cin>>a[i][2];
cout<<"第3门"<<endl;
cin>>a[i][3];
cout<<"第4门"<<endl;
cin>>a[i][4];
}}
void sort_avg()
{int sum,i,j,k,p,b[11][6];
for(j=1;j<=n;j++)
{ sum = 0; //这里sum要赋初值的,不然会一直累加所有人的成绩
for(i=1;i<5;i++)
{sum+=a[j][i];} //sum=+a[j][i]; += =+ 写错
int avg;
avg=sum/4;
a[j][5]=avg;}
for(i=1;i<=n;i++)
{a[i][0]=i;
}
//从这里往下,没看懂什么想法, 重新写了
int temp;
for(int i=1;i<n;i++){ //每次循环都将平均成绩第i大的学生的数据换到第i行
int max_i=i; //max_i 记录第i大的学生的行号
for(int ii=i+1;ii<n;ii++){
if(a[ii][5]>a[max_i][5]){
max_i = ii;
}
}
//交换max_i行的数据与第i行的数据
for(int j=1; j<5; j++){
temp=a[i][j]; a[i][j]=a[max_i][j]; a[max_i][j]=temp;
}
}
cout<<"平均分从高到低"<<endl;
for(i=1;i<=n;i++)
{
cout<<a[i][0]<<setw(5)<<a[i][5]<<endl;
}}
void F()
{int i,j,p,k;
cout<<endl;
cout<<"不及格学生"<<endl;
for(j=1;j<=n;j++)
{ for(i=1;i<=4;i++) // 这里是 i≤4
{k=i;
for(p=2;p<5;p++) if(a[j][k]>a[j][p]) k=p;}
if(a[j][k]<60) cout<<j<<"有科目不及格"<<endl;
else cout<<j<<"没有不及格"<<endl;
}
}
void S()
{ int i,j,t,p,k;
for(i=1;i<5;i++)
{ for(j=1;j<n;j++)
t = a[1][i];
{for(k=2;k<=n;k++)
if(t<a[k][i]) {t = a[k][i];}} // 这里动了原始的数据
cout<<"第"<<i<<"门课最好成绩"<<t<<endl;
}
}
void show()
{int i,j;
for(i=1;i<=n;i++)
{
for(j=0;j<6;j++)
cout<<a[i][j]<<setw(5);
cout<<endl;}
}
};
int main()
{student stu;
stu.shuru();
stu.F();
stu.S();
stu.sort_avg();
stu.show();
return 0;
}
c-学生成绩
最新推荐文章于 2021-12-22 23:20:37 发布