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