请帮我讲解下java二维数组3*3矩阵实例//1-4的意思
publicclassMatrix{publicstaticvoidmain(String[]args){inti,j;intn=5;inta[][]=newint[n]...
public class Matrix{
public static void main(String[] args){
int i,j;
int n = 5;
int a[][] = new int[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++)
a[i][j]=0;
}
a[0][0]=1;
for(i=0;i<(n+1)/2;i++){ //奇、偶数时i循环次数
for(j=0;j<n-1-i;j++) //1 从上到下,纵
if(a[j+1][i]==0)
a[j+1][i]=a[j][i]+1;
for(j=i+1;j<n-i;j++) //2 从左往右,横
if(a[n-1-i][j]==0)
a[n-1-i][j]=a[n-1-i][j-1]+1;
for(j=n-1-i;j>i;j--) //3 从下到上,纵
if(a[j-1][5-1-i]==0)
a[j-1][5-1-i]=a[j][5-1-i]+1;
for(j=n-1-i;j>i;j--) //4 从右往左,横
if(a[i][j-1]==0)
a[i][j-1]=a[i][j]+1;
}
//输出
for(i=0;i<n;i++){
for(j=0;j<n;j++){
System.out.print(" "+a[i][j]); }
System.out.println(); }
} }
输出结果:
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
(1)不懂的地方://1-4,帮我详细解释下!
(2)请问//3中:(最头疼)
【if(a[j-1][5-1-i]==0) 是判断a的第j-1列和第5-1-i行还是a的第j-1行和第5-1-i列?】 我认为a[i][j]的结果和a[j][i]不一样啊,它这里判断的意思是什么? 展开
public static void main(String[] args){
int i,j;
int n = 5;
int a[][] = new int[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++)
a[i][j]=0;
}
a[0][0]=1;
for(i=0;i<(n+1)/2;i++){ //奇、偶数时i循环次数
for(j=0;j<n-1-i;j++) //1 从上到下,纵
if(a[j+1][i]==0)
a[j+1][i]=a[j][i]+1;
for(j=i+1;j<n-i;j++) //2 从左往右,横
if(a[n-1-i][j]==0)
a[n-1-i][j]=a[n-1-i][j-1]+1;
for(j=n-1-i;j>i;j--) //3 从下到上,纵
if(a[j-1][5-1-i]==0)
a[j-1][5-1-i]=a[j][5-1-i]+1;
for(j=n-1-i;j>i;j--) //4 从右往左,横
if(a[i][j-1]==0)
a[i][j-1]=a[i][j]+1;
}
//输出
for(i=0;i<n;i++){
for(j=0;j<n;j++){
System.out.print(" "+a[i][j]); }
System.out.println(); }
} }
输出结果:
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
(1)不懂的地方://1-4,帮我详细解释下!
(2)请问//3中:(最头疼)
【if(a[j-1][5-1-i]==0) 是判断a的第j-1列和第5-1-i行还是a的第j-1行和第5-1-i列?】 我认为a[i][j]的结果和a[j][i]不一样啊,它这里判断的意思是什么? 展开
展开全部
public class T {
public static void main(String[] args) {
int i,j;
int[][] a = {{1,1,1},{2,2,2},{3,3,3}};
int[][] b = new int[3][3];
System.out.print("初始矩阵:\n");
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
System.out.print(a[i][j]+" ");
}
System.out.print("\n");
}
System.out.print("转置矩阵:\n");
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
b[i][j] = a[j][i];
System.out.print(b[i][j]+" ");
}
System.out.print("\n");
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询