繁体   English   中英

错误的数组值

[英]wrong array values

我有二维数组,但如果我改变 x 坐标,每次我都会得到错误的结果。

  int[][] arr = {{0, 2, 0, 0, 1},{0, 2, 0, 0, 1},{0, 2, 0, 0, 1},{0, 2, 0, 0, 1},{0, 2, 0, 0, 1}};
int now, previous;

   for (int i = 1; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        now = arr[i][j];
        previous = arr[i-1][j];
        }
   }

变量的结果现在是 0, 2, 0, 0, 1... 为什么我只想有 2, 0, 0, 1 如果我更改变量的 i 坐标,例如 i = 1 output 仍然是 0, 2 , 0, 0, 1 ... 你知道问题在哪里吗? 谢谢

您需要将 j = 1 而不是 j = 0。

i 变量遍历构成数组的向量,而 j 变量遍历其中一个向量的每个元素。 您想要跳过每个向量的第一个元素,因此您应该将 j 更改为从 1 而不是 0 开始。

在任何情况下,您都在循环内重复属性,并且只会保留分配给变量的最后一个值。 因此,假设这是您正在使用的原始代码,您应该删除“for”循环并直接进行归因,假设您的 arr 数组不会改变。

因为 i 对应于您示例中的外部数组。 你所拥有的将打印0, 2, 0, 0, 1四次。 我知道你想要的是显示2, 0, 0, 1五次......你应该这样做

for (int i = 0; i < 5; i++) {
 for (int j = 1; j < 5; j++) {
     now = arr[i][j];
     previous = arr[i-1][j];
     }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM