Seemyeyes7 2019-12-24 15:40 采纳率: 50%
浏览 171
已采纳

麻烦大佬帮忙看一下我的代码哪里出了问题,关于对象数组和指针的!!

建立一个对象数组,内放五个学生的数据(学号、成绩)。设立一个函数max,使用对象指针作为函数参数,在max函数中找出5个学生成绩最高者,并输出其学号。要求采用多文件结构实现。

//student.h
class student
{
public:
    student(int number=0,int scores=0);
    void input();
    void show();
    int max(student stu[],int i);
private:
    int number;
    int scores;
};


//student.cpp
#include"student.h"
#include<iostream>
using namespace std;
student::student(int number,int scores)
{
    this->number=number;
    this->scores=scores;
}

void student::input()
{
    cin>>number>>scores;
}

void student::show()
{
    cout<<"the hightest scores is"<<&student::max<<endl;
}

int student::max(student stu[],int i)
{   int max;
    student *p;
    for(i=0;i<5;i++)
    {
        p[i].scores<p[i+1].scores;
            max=p[i+1].scores;
    }
    return max;
}
//main.cpp
#include<iostream>
#include"student.h"
using namespace std;
int main()
{
    student stu[5];
    student *st;
    int i;
    for(i=0;i<5;i++){
        cout<<"请输入第"<<i+1<<"号学生的信息"<<endl;
        stu[i].input();
    }
    st->max(stu,5);
    system ("pause");
    return 0;
}


麻烦大佬讲解出问题的愿意和需要怎么修改,谢谢!

  • 写回答

2条回答 默认 最新

  • bobhuang 2019-12-24 16:01
    关注

    1.这里max是函数,而不是成员变量。

    void student::show()
    {
        cout<<"the hightest scores is"<<&student::max<<endl;
    }
    

    2.这里,函数名max和局部变量max重名了,要改掉一个。
    3.max计算的不是最大值,与题意不符。
    4.p没有初始化,要加上p = &stu[0]

    int student::max(student stu[],int i)
    {   int max;
        student *p;
        for(i=0;i<5;i++)
        {
            p[i].scores<p[i+1].scores;
                max=p[i+1].scores;
        }
        return max;
    }
    

    改成

    int student::max(student stu[],int n)
    {   int maxs = 0;
        int maxn = 0;
            int i;
        student *p = &stu[0];
        for(i=0;i<n;i++)
        {
                if (p[i].scores > max) {
                      maxs = p[i].scores;
                        maxn = p[i].number;
                    }
        }
        return maxn;
    }
    

    5.最后,输出漏了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站