键盘录入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右、下、左、上螺旋填入的结果。
例如读入数字4,5,则输出结果为:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
import java.util.Scanner;//导包
public class T{
public static void main(String[] args){
//键盘录入
Scanner sc=new Scanner(System.in);
System.out.println("请输入行数m:");
int m=sc.nextInt();
System.out.println("请输入列数n:");
int n=sc.nextInt();
//定义一个m行n列的数组
int[][] arr=new int[m][n];
//定义数组索引
int x;
int y;
//给数组赋值
int z=1;
int c=0;
//循环次数未知,用while循环
while(true){
//设置停止条件
if(z>m*n){
break;
}
//第(c)行
for(x=c,y=c;y<n-c;y++){
arr[x][y]=z;
z++;
}
//第(n-c)列
for(x=c+1,y=n-1-c;x<m-c;x++){
arr[x][y]=z;
z++;
}
//第(m-1-c)行
for(x=m-1-c,y=n-2-c;y>=c;y--){
arr[x][y]=z;
z++;
}
//第c列
for(x=m-2-c,y=c;x>c;x--){
arr[x][y]=z;
z++;
}
c++;
}
//遍历数组
for(int a=0;a<m;a++){
for(int b=0;b<n;b++){
System.out.print(arr[a][b]+"\t");
}
System.out.println();
}
}
}

此篇博客介绍如何使用Java编程实现输入行数m和列数n,生成一个由1到m*n的自然数按右下左上螺旋顺序填充的矩阵。通过示例展示了如何构造并打印输出矩阵的过程。
1万+

被折叠的 条评论
为什么被折叠?



