多维数组到C++内的棋盘

Multidimensional arrays to chessboard within C++

本文关键字:C++ 数组      更新时间:2023-10-16

所以我有一个 5 行 2 列的多维数组。我现在需要做的是将每个元素输出为棋盘字段。此外,我只需要白色字段。

#include <iostream>
using namespace std;
int main ()
{
   int a[5][2] = {{0,0}, {1,2}, {2,4}, {3,6},{4,8}};
   for ( int i = 0; i < 5; i++ )
      for ( int j = 0; j < 2; j++ )
      {
         cout << a[i] << "n" << a[j] << endl;
      }
   return 0;
}

我是否只是在其中一个循环中递增 +1 以便我逃离黑场?因为如果是这样,我对必须跳过哪些元素有点困惑。

预期产出:

1 2 3 4 5 6 7 8 9 1 2

就这样整理了。

这是一个相当独特的解决方案(假设第一个方块是白色的):

#include <iostream>
using namespace std;
int main ()
{
   int a[5][2] = {{0,0}, {1,2}, {2,4}, {3,6},{4,8}};
   for ( int i = 0; i < 5; i++ )
   {
      for ( int j = 0; j < 2; j++ )
      {
         // Check for white square by checking if the sum of the index is "even"
         if((i + j) % 2 == 0)
         {
             cout << a[i][j] << endl;
         }
      }
   }
   return 0;
}

注意:如果第一个方块是黑色的,则更改为大小写会相当容易,但我会留给您弄清楚:-)

注意2:将其转换为处理任何(正)大小的国际象棋盘的函数相当容易。