【发布时间】:2017-09-09 02:58:12
【问题描述】:
这是我编写的抛出螺旋矩阵的代码,但它抛出了 矩阵不同
2000021
1970022
1860123
1714131224
1600025
代码是这样的:
public class caracol {
public static void main(String[] args) {
int[][] matriz = new int[5][5];
int n=5;
int nlimite= n-1;
int inicio = 0;
int c=1;
while(c<=(n*n)) {
for (int i = inicio+2; i<=nlimite-1; i++) //baja
{
matriz[i][nlimite-1] = c++;
}
for (int i = inicio+2; i>=inicio+1; i--) ///izquierda
{
matriz[nlimite-1][i] = c++;
}
for (int i = nlimite-1; i>=inicio+1; i--) //sube
{
matriz[i][inicio+1] = c++;
}
for (int i = inicio+1; i>=nlimite-1; i++) //derecha
{
matriz[inicio+1][i] = c++;
}
for (int i = inicio+1; i<=nlimite; i++) //baja
{
matriz[i][nlimite] = c++;
}
for (int i = nlimite-1; i>=inicio; i--) ///izquierda
{
matriz[nlimite-1][i] = c++;
}
for (int i = nlimite; i>=inicio; i--) //sube
{
matriz[i][inicio] = c++;
}
for (int i = inicio; i>=nlimite; i++) //derecha
{
matriz[inicio][i] = c++;
}
for (int i = inicio; i<=nlimite; i++) //baja
{
matriz[i][nlimite] = c++;
}
nlimite=nlimite-1;
inicio = inicio+1;
}
for(int x=0;x<n;x++) { /*Mostrar la matriz en pantalla*/
System.out.println();
for(int y=0;y<n;y++) {
System.out.print(matriz[x][y]);
}
}
}
}
生成的矩阵与照片的矩阵不同。 您必须从矩阵 [2] [2] 开始,但在矩阵 [0] [0] 中也是如此,因为您更改了行和列的索引位置。
【问题讨论】:
-
欢迎来到 SO。请编辑您的问题以显示生成的矩阵。将其添加到问题中,而不是在 cmets 中。
-
如何编辑我的问题?
-
点击下方的
edit。 -
i.stack.imgur.com/hmLVX.jpg 这是矩阵的结果。
-
顺便说一句,生成这个有什么意义,什么时候它总是一样的?在初始化程序中给出值会更简单......