建立一个结构体类型的学生信息数据库,学生信息包括姓名和四门课程(数学、计算机、英语、体育)成绩。要求调用函数完成学生信息的录入(输入),调用函数完成学生信息按总分从高到低的排序,调用函数完成排序后的学生信息输出。
提示:const int N=5;结构体类型数组有N个元素。
提示:const int N=5;结构体类型数组有N个元素。
#include <iostream>
#include <string>
using namespace std;
struct student
{
string name;
int score[4];
};
int main()
{
const int n=5;
student stu[n];
void input(student [],int );
void sore(student [],int);
void print(student [],int );
input(stu,n);
sore(stu,n);
print(stu,n);
return 0;
}
void input(student stu[],int n)
{ int i,j;
for(i=0;i<n;i++)
{
cin>>stu[i].name;
for(j=0;j<4;j++)
cin>>stu[i].score[j];
}
}
void sore(student stu[],int n)
{ int sum[4],i,j,t;
student temp;
for(i=0;i<n;i++)
{ sum[i]=0;
for(j=0;j<4;j++)
sum[i]=sum[i]+stu[i].score[j];
}
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(sum[j]<sum[j+1])
{ temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
t=sum[j];
sum[j]=sum[j+1];
sum[j+1]=t;
}
}
void print(student stu[],int n)
{ int i,j;
for(i=0;i<n;i++)
{
cout<<stu[i].name<<" ";
for(j=0;j<4;j++)
cout<<stu[i].score[j]<<" ";
cout<<endl;
}
}