关于 班级最高分学生的学号,Total 函数 读取异常 new 开辟 是否 错误 求教
/*6、【基本题】一个班级有n个学生,n由用户输入,每个学生有学号1-n,
有三门成绩(语、数、外)成绩由随机数生成(0到100之间),每个学生的成绩由动态数组保存。
要求:
(1). 取得总分最高的学生的学号。
(2). 提示用户输入1,2,3来获得语、数、外的平均分。
*/
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
class CStudent{
int Math,English,Chinese;
public:
CStudent()
{
// srand ( time(NULL) );
Math =rand()%100;
English =rand()%100;
Chinese =rand()%100;
}
int Total()
{
return (Math +English +Chinese );//报错
}
void Show()
{
cout<<" Math:"<<Math<<" English:"<<English<<" Chinese:"<<Chinese <<endl;
}
};
int GetMaxNum(CStudent * &Grade,int & n )
{
for(int i=0;i<n;i++)
{
(Grade+i)->Show();
if(i%4==0)
{
cout<<endl;
}
}
int i=0,max=(Grade+i)->Total();
while(i<n)
{
if((Grade+i)->Total()<(Grade+++i)->Total())
max=(Grade+i)->Total();
}
return i;
}
void main()
{
int n;
cout<<"input the number of student :"<<endl;
cin>>n;
CStudent * Grade=new CStudent[n] ;
//a.Show ();
cout<<GetMaxNum(Grade, n )<<endl;
delete []Grade;
}