学号出来是乱码,该怎么改呢

#include <iostream>
using namespace std;
class student
{
public:
    student(int n, double s) :num(n), score(s) {}   //参数初始化表构造函数
    int  getn() { return num; }
    double gets() { return score; }
    void show()
    {
        cout << num <<  " " << score << endl;
    }
private:
    int num;
    double score;
};
int main()
{
    student stu[5] = { student(1,99),student(2,92),student(3,89),student(4,79),student(5,29) };
    student* p = &stu[0];
    for (int i = 0; i <= 2; p = p + 2, i++)
    {
        p->show();
    }
    void max(student*);
    max(p);
    return 0;
}
void max(student* s)
{
    double m = s[0].gets();
    int k = 0;
    for (int i = 1; i < 5; i++)
    {
        if (m < s[i].gets())
        {
            m = s[i].gets(); k = i;
        }
    }
    cout << "最高成绩学号:" << s[k].getn();
}

img

函数传递参数的地方,别用另一个指针等于数组第一个的地址。你直接穿str就对了