我有一个100x100的数组,但我需要清楚地显示4个边(topleft,topright,bottomleft,bottomright)之间的区别,除了使用颜色来显示差异,我想如何表明它是不同的。问题是我必须使用字母'A'来表示数组输出。我也被允许只使用1个100x100阵列。意思是我不能使用4个25x25阵列。这是用c ++编写的,但也欢迎java代码或解释。 像这样的东西? 样本输出:
AAAAAAAAA AAAAAAAAA AAAAAAAAA AAAAAAAAA AAAAAAAAA AAAAAAAAA AAAAAAAAA AAAAAAAAA
答案 0 :(得分:0)
如果要打印分隔每个象限的数组,如问题所示,您只需将数组拆分为两个长度并将其与空格分开。如果大小是偶数。例如
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;
}