回 帖 发 新 帖 刷新版面

主题:各位帮帮我看看这个程序的错误在哪里??

建立一个类,建立5个学生的数据(学号,成绩),建立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高的。
  各位帮我看看编译的时候有错误是在哪里``还有这样的思路对不对??初学,请大家指教
#include <iostream>
using namespace std;
class student
{
private:
int mun;
float fenshu;
public:
student(int x,float y);
};
student::student(int x,float y)
{mun=x;
fenshu=y;}

int mian()
{float z;
student a(1,99),b(2,88),c(3,66),d(4,55),e(5,78);
student *p[5];
p[0]=&a;
p[1]=&b;
p[2]=&c;
p[3]=&d;
p[4]=&e;

float max(student *P)
{float k=p->fenshu;
for(i=0;i<=3;i++)
{
    if(k>p[i+1]->fenshu)  k=p[i]->fenshu;
else k=p[i+1]->fenshu;
}
return k;}

z=max(p[0]);
cout<<z<<endl;
return 0;}

回复列表 (共3个回复)

沙发

student *p[5];
这是指针数组还是数组指针?????

板凳

这样就可以了! 不用那个函数了!
#include <iostream>
using namespace std;
class student
{
public:
    int num;
    float fenshu;
public:
    student(int x,float y);
};

student::student(int x,float y)
{
    num=x;
    fenshu=y;
}
void main()
{
    student a(1,95),b(2,88),c(3,96),d(4,85),e(5,98);
    student *P[5];
    P[0]=&a;
    P[1]=&b;
    P[2]=&c;
    P[3]=&d;
    P[4]=&e;
    float k=P[0]->fenshu;
    for(int i=0;i<=4;i++)
    {
        if(k<P[i]->fenshu)  
            k=P[i]->fenshu;
    }
    cout<<k<<endl;
}

3 楼

这样做就对了! 
#include <iostream>
using namespace std;

class student
{
public:
    int num;
    float fenshu;
public:
    student(int x,float y);
};

student::student(int x,float y)
{
    num=x;
    fenshu=y;
}

float max(student *P[])
{
    float k=P[0]->fenshu;
    for(int i=0;i<=4;i++)
    {
        if(k<P[i]->fenshu)
            k=P[i]->fenshu;
    }
    return k;
}

void main()
{
    float z;
    student a(1,95),b(2,88),c(3,96),d(4,85),e(5,98);
    student *P[5];
    P[0]=&a;
    P[1]=&b;
    P[2]=&c;
    P[3]=&d;
    P[4]=&e;

    z=max(&P[0]);
    cout<<z<<endl;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册