各位大佬帮帮忙,这个执行出来的为什么是一个随机的数呀?帮帮忙,谢谢。谢谢。
#include<iostream>
#include<string>
using namespace std;
class student{
private:
int num;
string name;
float score[3];
float ave;
public:
student(int n,string na,float s1,float s2,float s3);
float score_ave();
void show();
void bijiao(student s[],int n);
student();
void output(int n);
}t[100];
student::student(int n,string na,float s1,float s2,float s3)
{
num=n;
name=na;
score[0]=s1,score[1]=s2,score[2]=s3;
}
float student::score_ave()
{
ave=(score[0]+score[1]+score[2])/3;
return ave;
}
void student::show()
{
cout<<"Num:"<<num<<"\t"<<"Name:"<<name<<endl;
cout<<"高数:"<<score[0]<<"\t"<<"英语:"<<score[1]<<"\t"<<"C++:"<<score[2]<<endl;
cout<<"平均成绩为"<<"ave="<<ave<<endl;
}
student::student()
{
}
void student::bijiao(student s[],int n)
{
for(int i=0;i<n;i++)
for(int j=0;j<n-i;j++)
if(s[j].ave<s[j+1].ave)
{
student temp;
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
void student::output(int n)
{
for(int i=0;i<n;i++)
{
cout<<"第"<<i+1<<"名"<<"\t";
cout<<name<<"\t"<<num<<"\t";
for(int j=0;j<3;j++)
{
cout<<score[j]<<"\t";
}
cout<<"平均成绩:"<<ave;
cout<<endl;
}
}
int main()
{
student st1(1001,"lihua",77,79,95);
st1.score_ave();
st1.show();
student st2(1002,"liming",80,81,95);
st2.score_ave();
st2.show();
student s;
s.bijiao(t,2);
s.output(2);
return 0;
}