欢迎提出更好的方法
/*螺旋填数
题目描述:
创建一个m行n列的数组,将1—m*n的数字螺旋填入
方向为右下左上
输入说明:
输入正整数m和n,以空格分隔
输出说明:
输出填好的数组,数组元素之间用空格分隔,数组每行之间以换行分隔
输入示例:
4 5
输出示例:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,n;
int j=0,k=0,num=1;
int a[50][50]={0};
scanf("%d%d",&m,&n);
while(num<=m*n)
{
while(a[j][k]==0&&k<n)
{
a[j][k]=num;
num++;
k++;
}
j++;
k--;
while(a[j][k]==0&&j<m)
{
a[j][k]=num;
num++;
j++;
}
k--;
j--;
while(a[j][k]==0&&k>=0)
{
a[j][k]=num;
num++;
k--;
}
k++;
j--;
while(a[j][k]==0)
{
a[j][k]=num;
num++;
j--;
}
j++;
k++;
}
for(j=0;j<m;j++)
{
for(k=0;k<n;k++)
printf("%d ",a[j][k]);
printf("\n");
}
return 0;
}