制作一个2d的100x100数组,将其分割成4个25x25不同的输出

Making a 2d 100x100 array splitted in to a 4 25x25 different output

本文关键字:分割 4个 输出 25x25 数组 100x100 2d 一个      更新时间:2023-10-16

我有一个100x100的数组,但我需要清楚地显示4边之间的差异(toppleleft,topright,bottomleft,bottomright)除了使用颜色来显示差异,我该如何显示它是不同的。问题是我必须使用字母"A"作为数组输出。我也被允许只使用1 100 × 100数组。这意味着我不能使用4 25x25数组。这是用c++编写的,但也欢迎使用java代码或解释。像这样的?样例输出:

<>之前AAAAAAAAA AAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAA AAAAAAAAA

如果你想打印数组分隔每个象限,如你的问题所示,你只需要将数组分成两个长度,并用空间分隔它。如果大小是偶数。如

int SIZE = 100;
int MID = SIZE/2;
char a[][] = new char[SIZE][SIZE];
for(char[] col : a){
    Arrays.fill(col, 'A');
}
for(int i=0; i<SIZE; i++){
    if(i == MID) System.out.println();
    for(int j=0; j<SIZE; j++){
        if(j == MID) System.out.print("  ");
        System.out.print(a[i][j]);
    }
    System.out.println();
}

这里的思想是遍历每个元素,如果有任何索引位于中间,则追加一个空白空间。如果你把大小设为4就会得到

AA  AA
AA  AA
AA  AA
AA  AA
c++示例

#include <iostream>
#define SIZE 4
int main() {
    int MID = SIZE/2;
    char a[SIZE][SIZE];
    //Initializing array
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            a[i][j] = 'A';
        }
    }
    //Print squares
    for(int i=0; i<SIZE; i++){
        if(i == MID) cout << endl;
        for(int j=0; j<SIZE; j++){
            if(j == MID) cout << " ";
            cout << a[i][j];
        }
        cout << endl;
    }
    return 0;
}