一道关于动态数组和类的题

来源:百度知道 编辑:UC知道 时间:2024/09/24 06:53:23
#include<iostream.h>
struct shuzu
{char name[10];
double marke;
};

void system(int n)
{shuzu *&a=new shuzu[n];
shuzu answer;
for(int i=0;i<n;i++)
{cout<<"请输入第"<<(i+1)<<"个同学的姓名和成绩"<<endl;
cin>>a[i].name>>a[i].marke;
if (i=0) answer=a[0];
else if(a[i-1].marke<a[i].marke) answer=a[i];
else answer=a[i-1];
}
cout<<answer.name<<endl<<answer.marke<<endl;
delete []a;
}

void main()
{int n;
cout<<"请输入班级人数"<<endl;
cin>>n;
system(n);
}

请问我这个程序哪里有错误??
题目是:把一个班的学生姓名和成绩存放到一个结构数组中,寻找和输出最高分者

麻烦高手看看。。如果改得好,加分喔。。。!!!!!!!
恳请二楼的高手解析一下。。谢谢

#include <iostream>
using namespace std;

struct shuzu
{
char name[10];
double marke;
};

void system(int n)
{
shuzu *a=new shuzu[n]; //这里貌似有点问题。
int max = 0; //修改为记录下标,效率高些,改进了一点
for(int i=0;i<n;i++)
{
cout<<"请输入第"<<(i+1)<<"个同学的姓名和成绩"<<endl;
cin>>a[i].name>>a[i].marke;
if( i > 0 )
{
if( a[i].marke > a[max].marke )
max = i;
}
}
cout<<a[max].name<<endl<<a[max].marke<<endl;
delete []a;
}

void main()
{
int n;
cout<<"请输入班级人数"<<endl;
cin>>n;
system(n);
}

请输入班级人数
3
请输入第1个同学的姓名和成绩
jk 34
请输入第2个同学的姓名和成绩
kl 45
请输入第3个同学的姓名和成绩
kld 48
kld
48
请按任意键继续. . .

shuzu *&a=new shuzu[n];
改成
shuzu *a=ne