我正在尝试使用数组输出 X 的平方。正方形的对角线将用“X”填充,空的将用空格“_”填充。
这是我得到的代码:
public static char[][] square(int z) {
int size=5;
char[][] myArr = new char[size][size];
for (int c=0;c<size;c++)
myArr[c][c]='X';
for (int r=0;r<size;r++)
{
for (int col=size-1;col>=0;col--)//put X
{
myArr[r][col]='X';
}
}
for(int count=0;count<size;count++){
if (myArr[count][count]!='X')
myArr[count][count]=' ';
}
return myArr;
}
这应该可以工作 - 我在纸上手动运行它,一切都应该很好。可能是什么问题?
最佳答案
问题可能出在这里:
for (int r=0;r<size;r++)
{
for (int col=size-1;col>=0;col--)//put X
{
myArr[r][col]='X';
}
}
您正在遍历整个正方形(大小 * 大小),而不仅仅是绘制东北 - 西南对角线。
尝试用这个替换它:
for (int r=0;r<size;r++)
{
myArr[r][size - r] = 'X'
}
编辑:为了让你的代码更紧凑:
public static char[][] square(int size) {
char[][] myArr = new char[size][size];
for (int c = 0; c < size; c++) {
for (int r = 0; r < size; r++) {
if ((c == r) || ( c == size - r)) {
myArr[r][c] = 'X';
} else {
myArr[r][c] = ' ';
}
}
}
return myArr;
}
关于java - 初学者Java数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799543/