Heatherrrr 2022-11-19 21:21 采纳率: 50%
浏览 2
已结题

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

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

img

img

#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;
}

  • 写回答

1条回答 默认 最新

  • 叶落花枯 2022-11-19 21:26
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月19日

悬赏问题

  • ¥15 C++ 如何判断设置快捷键来实现隐藏/显示窗口
  • ¥15 关于#材料工程#的问题:有没有具有电子阻挡层和空穴阻挡层的电池仿真silvaco代码例子或者其他器件具有阻挡层例子的silvaco代码(最好还有相关文献)
  • ¥60 基于MATLAB的TAOD算法
  • ¥15 Groimp使用疑问
  • ¥15 MDK–ARM里一直找不到调试器
  • ¥15 oracle中sql查询问题
  • ¥15 vue使用gojs3.0版本,在nodeDataArray中的iconSrc使用gif本地路径,展示出来后动画是静态的,不是动态的
  • ¥100 代写个MATLAB代码,有偿
  • ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图
  • ¥15 Dev-c++打字不出现中文,但出现日文