c++类中对象的排序输出

来源:百度知道 编辑:UC知道 时间:2024/07/07 23:36:03
类stu包含学号,姓名,英语及计算机成绩,要求对N名学生的信息按照总分按照降序输出。
ps:排序很简单,但是如何将其他信息按照总分的顺序排序?
回3L:你的代码恰好没体现出最关键的排序部分,我不知道sort()函数是从哪冒出来的,能讲解下吗?而且我运行了下还有点小小的瑕疵~
以下是我的代码,谁能帮我看下错在哪,谢谢!!!
#include<iostream.h>
#include<string.h>
class stu
{
private:
char name[10];
float eng;
float com;
float sum;
public:
stu();
stu(char a[10],float b,float c)//构造函数
{
strcpy(name,a);
eng=b;
com=c;
}
void disp() //输出函数
{
cout<<name<<" ";
cout<<eng<<" ";
cout<<com<<endl;
}
friend void array(stu s[4]);
};
void array(stu s[4]) //对类数组中的对象按照总分进行排序
{
stu t;
int i,j;
for(i=0;i<4;i++)
s[i].sum=s[i].eng+s[i].com;
for(i=0;i<3;i++)
{
for(j=0;i<4;i++)
if(s[i].sum<s[j].sum)
{
t=s[i];
s[i

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
#define N 20
struct data{
int num,english,computer;
string name;
bool operator < (const struct data t) const
{
return english+computer<t.english+t.computer;
}
}a[N];
int main()
{
int n;
cout<<"输入学生人数 : ";
cin>>n;
cout<<"依次输入学生的学号,姓名,英语和计算机成绩"<<endl;
for(int i=0;i<n;i++)
{
cin>>a[i].num>>a[i].name>>a[i].english>>a[i].computer;
}
sort(a,a+n);
for(int i=0;i<n;i++)
{
cout<<a[i].num<<" "<<a[i].name<<" "<<a[i].english<<" "<<a[i].computer<<endl;
}
system("