分配和打印数组时出现逻辑错误
Logic Error Assigning and Printing Arrays
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
。
- 它可以是学生和课程的布尔矩阵,其中的值将指示学生是否正在学习课程,或者
- 它可以是学生和课程对的列表。
填充Assigned
的函数opt3()
做了一些奇怪的事情:它接受一个学生和一个课程,并为学生创建一个新列,为课程创建一个新行。所以这个函数似乎使用 Assigned
作为矩阵,但它同时添加了新学生和新课程。此外,此矩阵的值是学生和课程 ID 的混合,并且具有许多未使用的值。这没有多大意义。
如果该函数的目的是输入哪个学生参加哪门课程,则根据Assigned
的含义,它应该
- 搜索"学生"列和"课程"行,并将值设置为
true
或 - 将新的学生和课程对添加到列表中。
相关文章:
- 使用 <list> (错误 C2760) 打印队列的元素
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 为什么重载运算符<<打印特征类成员会导致段错误?
- 我编写了以下代码来读取C++矩阵,然后打印其行和列.我收到此错误
- 我在C++中编写了一个方法来打印树类的预序,但它显示了分割错误
- 错误含义;以二进制形式打印数字
- 通过基类引用派生类后打印的错误值
- 如何在没有打印语句的情况下报告用户输入错误
- 为什么没有打印错误消息
- C++打印模板容器错误(错误:"运算符<<"的不明确重载)理解?
- 错误:变量或字段'PrintEntity'声明无效无效打印实体(实体 e);
- 将矢量的整数内容打印为字符串会导致分割错误
- 为什么我的C++代码在以下打印链表的代码片段中显示分段错误?
- C++ 添加编译器警告,以错误使用自定义打印/日志功能
- 尝试用纯 c 编程 arduino,得到以下错误:预期的"="、""、";",'asm'或"打印"之前的'__attribute__'|
- Python - 从 c++ DLL 错误打印值
- 使用std :: String ptr的错误打印std :: String
- 枚举类的GoogleTest测试错误打印
- 分段错误:打印动态数组时为 11
- Ustring错误(打印期间)