【问题标题】:Logic Error Assigning and Printing Arrays分配和打印数组的逻辑错误
【发布时间】:2016-02-19 21:35:34
【问题描述】:
void opt3()
{
    cout << "ENTER STUDENT NAME>";
    cin >> Assigned[Col][Row];//Get New Assignment of Student Name at appropriate Col and Row
    Col++;
    cout << "ENTER COURSE ID>";
    cin >> Assigned[Col][Row];//Get new Assignement of class at appropriate Col and Row
    Row++;
    return;
}
void opt7(int& Col, int& Row)
{
    cin.clear();
    cin.ignore();
    int x,y,z;
    string CouC;
    cout << "ENTER COURSE ID>";
    getline(cin,CouC,'\n');
    bool Ans;
    do
    {
            for (int i=0;i<Row;i++)
            {
                    for (int j=0;j<Col;j++)
                    {
                            x = j;
                            y = i;
                            Ans = CouC.compare(Assigned[j][i]);
                            if(Ans)
                                    z=j;
                    //Compares until it finds the right course ID woop and then sets it to arr$
                    }
            }

    }while (Ans == false);

    for (y=0;y<10;y++)
    {
            cout << Assigned[z][y];//Print out the students in the course
    }

这就是我的问题代码部分的样子。我很难将学生存储在所需的班级中,然后根据所选班级将它们打印出来。我正在尝试将我的数组 Assigned[][] 与适当的用户输入进行比较,但我似乎无法弄清楚。我目前没有编译错误,只有逻辑错误。运行时我的输出看起来很奇怪。它通常会打印一个随机的学生姓名和输入的课程名称。

我们将不胜感激,谢谢!

【问题讨论】:

  • 我很难将学生存储在所需的班级中 -- 您应该先编写这部分代码,然后对其进行测试。您问的是 3 个不同的问题,我们不知道斜体字是否正常工作。另外,应该发布minimal reproducible example
  • 另外,您的作业令人困惑,或者您编写了一些非常令人困惑的代码。二维数组的目的是什么? “Row”和“Col”应该表示什么?我期望一个一维数组,其中每个元素都是学生信息(作为一个类或结构),而不是像棋盘这样的二维数组。
  • 是的,我自己也很困惑。我无法有效地解决问题。

标签: c++ arrays printing logic


【解决方案1】:

看来二维数组Assigned的含义需要明确定义。

  • 它可以是学生和课程的布尔矩阵,其中的值将指示学生是否正在学习课程,或者
  • 它可以是学生和课程对的列表。

填充Assigned 的函数opt3() 做了一些奇怪的事情:它接受一个学生和一门课程,并为学生创建一个新列并为课程创建一个新行。所以这个函数似乎使用Assigned作为矩阵,但它同时添加了一个新学生和一个新课程。此外,该矩阵的值是学生 ID 和课程 ID 的混合,并且它有许多未使用的值。这没有多大意义。

如果该函数的目的是输入哪个学生上哪个课程,它应该,取决于Assigned的含义,要么

  • 搜索学生列和课程行,并将值设置为true,或者
  • 将新的学生和课程对添加到列表中。

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 2022-11-17
    • 2018-07-06
    • 1970-01-01
    相关资源
    最近更新 更多