0

我有二维数组,但如果我改变 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,输出仍然是 0, 2 , 0, 0, 1... 你知道问题出在哪里吗?谢谢

4

2 回答 2

0

您需要输入 j = 1 而不是 j = 0。

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

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

于 2012-04-07T19:39:24.807 回答
0

因为 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];
     }
}
于 2012-04-07T19:40:04.993 回答