想问一下各位怎么才能输出

想问一下各位,输出学生信息那段为什么输出不了呀?然后就是我把for (int i = 0;stu[i].course1 !=0; i++)改成for (int i = 0;course1 !=0; i++)就输出成图二那样了,后面还有一堆乱码。我应该怎么改才能输出输入的信息呀😭😭

img

img

#include
#include
#include
using namespace std;
int x = 0;
int* X = &x;
class student
{
public:
    void add();
    void output();
public:
    string name;
    string num;
    float course1;
    float course2;
    float course3;
    float total;
    float average;
    int rank;

    
};
int m;
class student stu[1000];
void student::add()
{
    
    cout << "请输入要添加学生个数:" ;
    cin >> m;
    for (int i = 1; i <= m; i++)
    {
        cout << "请分别输入:姓名、学号、课程1成绩、课程2成绩、课程3成绩" << endl;
        
        {
        
            cin >>stu[i].name >> stu[i].num >> stu[i].course1 >> stu[i].course2 >> stu[i].course3;
            *X += 1;
        }
        if (i >= m)
        {
            
            cout << "添加成功!" << endl << endl;
        }
    }
    return;
}

void student::output()


{
    
    {
        cout << "学生信息如下:" << endl;
        cout << endl << "序号\t" << "姓名\t" << "学号\t" << "课程1\t" << "课程2\t" << "课程3\t" << endl;
        for (int i = 0;stu[i].course1 !=0; i++)
        {
            cout << i << ":\t";
            cout << stu[i].name << "\t" << stu[i].num << "\t" << stu[i].course1 << "\t" << stu[i].course2 << "\t" << stu[i].course3 << endl;
        }
        cout << endl << endl;
    }

        return;
    
}


int main()
{
    int n;
    student s;
    while (1)
    {

        cout << "+-----------------------------------------+" << endl;
        cout << "| 1.增加学生信息                          |" << endl;
        cout << "| 2.输出所有学生信息                      |" << endl;
        cout << "| 0.退出程序                              |" << endl;
        cout << "+-----------------------------------------+" << endl;
        cout << "请选择:";
        cin >> n;
        switch(n)
        {
        case 1:s.add(); break;
        case 2:s.output(); break;
        case 0:exit(0);
        }
    }
    return 0;
}

总人数不就是 m 嘛,循环 m 次输出就行了。
for (int i = 0; i<m; i++)