VC++问题,高手帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/17 19:05:21
include<iostream>
using namespace std;
class Fun
{
private:
int num;
int cj;
public:
void input()
{
cin>>num>>cj;
}
int output1()
{
int y1;
y1=num;
return 0;
}
int output2()
{
int y2;
y2=cj;
return 0;
}
};
int main()
{
Fun ti[5],*p;
for(p=ti;p<ti+5;p++)
p->input();
void max(Fun *q);
p=ti;
max(p);
return 0;
}
void max(Fun *q)
{
Fun a[5];
int i,k=1,y;
q=a;
y=q->output2();
for(i=1;i<5;i++)
{
if(y<(*(q+i)).output2())
{
y=(*(q+i)).output2();
k=i;
}
q=a;
cout<<(*(q+k)).output1()<<y;
}

}
答案
没答案,目的:建立以个对象数组,内放5个学生的数据(学号,成绩),设立一个函数MAX,用指向对象的指针作函数参数,在MAX函数中找出5个学生中成绩最高者,并输出其学号
小弟愚笨,3楼的回答看不大懂,再仔细说说,谢谢

你的代码不标准:你先将你要达到的目的说一下。
--------------
y=q->output2();
程序进入output2()后转进output2()里
y2=cj; //调试发再y2与cj全没有值。
-----------------
上面只是调试时查出错误!说明你的代码有问题,我不会改。但我可以按你的意思用别的方法来完成。看下面。
--------------
//目的:建立以个对象数组,内放5个学生的数据(学号,成绩),
//设立一个函数MAX,用指向对象的指针作函数参数,在MAX函数中找出5个学生中成绩最高者,并输出其学号

#include<iostream>
using namespace std;
class Fun
{
public:
int iMax;
int iNum;
public:
int input()
{
int date;
cin>>date;
return date;
}
Fun()
{
iMax=0;
iNum=0;
}
~Fun()
{
}
void max(int inum,int icj)
{

if(this->iMax<icj)
{
this->iMax=icj;
this->iNum=inum;
}

}
void output(int num,int cj)
{
cout<<"最高成绩的学号:"<<num<<endl;
cout<<"最高成绩的分数:"<<cj<<endl;
}