我的代码如下:
代码: 全选
#include <iostream>
using namespace std;
class student
{
public:
float average();
void input();
void display();
friend void arrange(student &stud[],int count);
private:
string name;
int num;
float english;
float math;
float cpp;
float ave;
};
void student::input()
{
cout<<"num:";
cin>>num;
cout<<"name:";
cin>>name;
cout<<"english:";
cin>>english;
cout<<"math:";
cin>>math;
cout<<"cpp:";
cin>>cpp;
}
float student::average()
{
ave=(english+math+cpp)/3;
}
void student::display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"english:"<<english<<endl;
cout<<"matn:"<<math<<endl;
cout<<"cpp:"<<cpp<<endl;
cout<<"average:"<<ave<<endl;
}
void arrange(student &stud[],int count)
{
int m,n;
student s;
for(m = 1;m<count;m++)
for(n = count-1;n >= m;--n)
{
if(stud[n-1].ave>stud[n].ave)
{
s = stud[n-1];
stud[n-1] = stud[n];
stud[n]= s;
}
}
}
int main()
{
student stud[3];
for(int i=0;i<3;i++)
{
cout<<"No."<<i<<endl;
stud[i].input();
stud[i].average();
}
arrange(stud,3);
for(int i=0;i<3;i++)
stud[i].display();
return 0;
}
查了N久也搞不定,已经开始怀疑自己的智商,大虾救我!!!zz@zz-desktop:~$ gcc ./323.cpp
./323.cpp:12: 错误: ‘stud’ 声明为 array of references
./323.cpp:51: 错误: ‘stud’ 声明为 array of references
./323.cpp: In function ‘void arrange(int)’:
./323.cpp:58: 错误: ‘stud’ 在此作用域中尚未声明
./323.cpp: In function ‘int main()’:
./323.cpp:76: 错误: 从类型 ‘student*’ 到类型 ‘int’ 的转换无效
./323.cpp:51: 错误: 给予 function ‘void arrange(int)’ 的实参太多
./323.cpp:76: 错误: 在文件的这个地方