2D数组和for循环的问题
Issue with 2D arrays and for loop
我对c++编程非常陌生,我有一个2D数组和for循环的问题。我一直在寻找解决方案,我最近做的所有程序,但其他一切都很好。除了这个for循环。
这只是程序的一小部分,但似乎问题是在这段代码。这个程序基本上是一个测试。有5个问题,有3个答案选项,用户应该输入1,2,3 (int值,负责将这些值获取到atsakymai[]数组的函数工作正常)。JDM, USDM, EUDM数组应该保留正确答案的点数(它们在开始时被设置为0)。atsakymoVerte数组保持答案顺序,从哪个点依赖。例如:1 - +1点到JDM;2 - 1+ USDM;3 - 1+到EUDM
这个程序似乎可以正常工作,直到for循环到达y = 4。但是在那之后它给出了不好的值…前3次循环工作良好,并将右变量(来自JDM, USDM或EUDM数组的变量)加1。一切都很好,直到第四次循环…我不知道该怎么做才能让它正常工作。我在这个问题旁边坐了几个小时,但是……没有解决方案。我希望你们能理解我的问题。谢谢。
int *JDM = new int[6]();
int *USDM = new int[6]();
int *EUDM = new int[6]();
int atsakymoVerte[6][4] = {
{0,0,0,0},
{0,2,1,3},
{0,2,1,3},
{0,1,2,3},
{0,3,1,2},
{0,3,1,2}
};
for (int y = 1 ; y < 6; y++) {
for (int x = 1; x < 4; x++) {
if (atsakymai[y] == atsakymoVerte[y][x]) {
switch (x) {
case 1: JDM[y]++;
break;
case 2: USDM[y]++;
break;
case 3: EUDM[y]++;
break;
}
}
}
}
不了解c++ -尽管许多其他语言都有0索引数组。这意味着0是第一个元素。
所以不用
for (int y = 1 ; y < 6; y++)
for (int x = 1; x < 4; x++)
应该是
for (int y = 0 ; y < 6; y++)
for (int x = 0; x < 4; x++)
通过使用您现在拥有的循环,第一次传递的y
等于1
-这将是atsakymai[1]
-实际上是atsakymai
数组中的第二个元素,而不是第一个元素。
如果你不小心,你也可能会试图引用一个不存在的索引。
我想你实际上是在计算n-2个循环,把for循环改成
for (int y = 0 ; y < 6; y++)
for (int x = 0; x < 4; x++)
这个atsakymai[y]
在哪里声明你必须定义它来比较你的数组否则你会不断得到错误
你正在伪造一个基于1的数组,你不应该这样做。这会导致许多问题并浪费内存。为什么要创建无用的元素呢?如果你有一个1000 × 1000的"2d"数组,你会浪费2000个元素。
我将有如下
// remove useless elements
int *JDM = new int[5]();
int *USDM = new int[5]();
int *EUDM = new int[5]();
int atsakymoVerte[5][3] = {
{2,1,3},
{2,1,3},
{1,2,3},
{3,1,2},
{3,1,2}
};
for (int y = 0 ; y < 5; y++) {
for (int x = 0; x < 3; x++) {
// WARNING: Make sure to remove useless elements
if (atsakymai[y] == atsakymoVerte[y][x]) { // in atsakymai and re-write previous indexes
switch (x) {
case 1: JDM[y]++;
break;
case 2: USDM[y]++;
break;
case 3: EUDM[y]++;
break;
}
}
}
}
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 在java中解决这段代码时面临循环中的问题
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 在 for 循环中查找问题时遇到困难
- 嵌套for循环C++的问题(初学者)
- 退出简单while循环时出现问题
- 循环无限运行C++解决骑士之旅问题
- Visual Studio 2017循环自动向量化问题
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 嵌套While循环不起作用(C++问题)
- 使用 GMP 的 while 循环出现问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- OpenMP for 循环并行性问题
- 这个返回元素位置的基于循环的函数有什么问题?
- 为什么循环会导致指针出现问题?
- 使用基于范围的循环迭代矢量时出现问题
- 在 c++ 中循环遍历数组时遇到问题
- 运行无限循环的最小二叉树问题
- 在C++中循环访问自定义结构列表的小问题
- 在 for 循环中更新两个变量时遇到问题C++