n的值>=2时为什么输出的值有空格等错误,求解。
#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
string id;
string name;
float score[3];
float sum_m;
};
Student* fun(float p[],int n,Student *student)
{
float temp;
Student demp;
for(int i=0;i<n;i++)
for (int j = 0;j < i - j;j++)
{
if (p[j] < p[j + 1])
{
temp = p[j+1];
p[j+1] = p[j ];
p[j] = temp;
demp = student[j+1];
student[j + 1] = student[i];
student[j] = demp;
}
}
for (int i=0;i < n;i++, student++)
{
cout << student->id << " "<< student->name << " " << student->sum_m <<" "<< endl;
}
return student;
}
int main()
{
int n;
cin >> n;
Student *student =new Student[n];
float* p = new float[n];
for (int i = 0;i < n;i++)
{
student->sum_m = 0;
cin >> student->id;
cin >> student->name;
for (int j = 0;j < 3;j++)
{
cin >> student->score[j];
student->sum_m += student->score[j];
cout << " ";
}
p[i] = student->sum_m;
}
fun(p, n, student);
return 0;
}