For loop 如何仅使用一个for循环来查找两个二维阵列中在相同位置具有相同值的栅格?

For loop 如何仅使用一个for循环来查找两个二维阵列中在相同位置具有相同值的栅格?,for-loop,For Loop,给定两个3*3的正方形,正方形内的每个网格都有一个值。如何在相同位置的两个网格中找到相同的值? e、 g. 正方形A: 1 3 5 498 267 方形B: 347 19 8 2 5 6 函数应该返回9、8、2 约束:只允许使用一个for循环 我的想法是: 最天真的想法是用两个for循环来比较每个正方形,这很容易,但限制是我只能用一个for循环? 然后我想按顺序将每个正方形转换成一维数组,然后比较两个转换后的一维数组,但是看起来我们仍然需要一个嵌套的for循环来进行转换 因此,任何帮助都将不胜感

给定两个3*3的正方形,正方形内的每个网格都有一个值。如何在相同位置的两个网格中找到相同的值? e、 g.
正方形A:
1 3 5
498
267

方形B:
347
19 8
2 5 6

函数应该返回9、8、2

约束:只允许使用一个for循环

我的想法是: 最天真的想法是用两个for循环来比较每个正方形,这很容易,但限制是我只能用一个for循环? 然后我想按顺序将每个正方形转换成一维数组,然后比较两个转换后的一维数组,但是看起来我们仍然需要一个嵌套的for循环来进行转换


因此,任何帮助都将不胜感激

假设
i
是循环变量。然后,您可以使用

i / array.length
这条线

i % array.length
也许这个java循环更清楚了:

int[][] array = {{1,3,5},{4,9,8},{2,6,7}};    

for(int i = 0; i < array.length * array.length; i++){
    System.out.println(array[i / array.length][i % array.length]);
}

假设
i
是循环变量。然后,您可以使用

i / array.length
这条线

i % array.length
也许这个java循环更清楚了:

int[][] array = {{1,3,5},{4,9,8},{2,6,7}};    

for(int i = 0; i < array.length * array.length; i++){
    System.out.println(array[i / array.length][i % array.length]);
}

<>在C+C++中,你可以很容易地把它做为一个循环作为

int arr[3][3];
将存储为连续内存块

所以你可以写:

for (int i = 0; i < 9; ++i) {
    if (*arr1 == *arr2) cout << *arr1;
    ++arr1;
    ++arr2;
}
for(int i=0;i<9;++i){

如果(*ARR1= **AR2)CUT

在C&C++中,你可以很容易地在循环中做为

int arr[3][3];
将存储为连续内存块

所以你可以写:

for (int i = 0; i < 9; ++i) {
    if (*arr1 == *arr2) cout << *arr1;
    ++arr1;
    ++arr2;
}
for(int i=0;i<9;++i){

如果(*arr1==*arr2)我想它是否应该在两个正方形中寻找相同的值(在相同的位置)是的,谢谢你指出。最好的方法取决于语言…与语言无关的是:for(I from 0 to rows*columns){row=I/columns;col=I%columns;if(a[row][col]==b[row][col]->yield_result;}我认为应该在两个正方形中寻找相同的值(在同一位置)是的,感谢您指出。最佳方法取决于语言…独立于语言的方法类似于:for(I从0到行*列){row=i/列;col=i%列;if(a[row][col]==b[row][col])->产生结果;}