编程题:输入n,编程生成n×n的螺旋方阵。

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:27:49
35.输入n,编程生成n×n的螺旋方阵。
例如输入5,生成如下矩阵
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

#include <stdio.h>
void main()
{
int i = 0;
int j = 0;
int k = 0;
int data[20][20]={0};
int count = 0;
int N = 0;
printf("Input an integer N:\n");
scanf("%d",&N);

for(k = 0;k < N/2;k ++)
{
for(i = k;i < N-k;i++)
data[k][i] = ++count;
for(i = k+1;i < N -k;i++)
data[i][N-k-1] = ++count;
for(i = N-k-2;i > k; i--)
data[N-k-1][i] = ++count;
for(i = N-k-1;i > k;i --)
data[i][k] = ++count;
}
if(N % 2 != 0)
data[N/2][N/2] = N*N;
for(i = 0;i < N;i ++)
{
for(j = 0;j < N;j ++)
printf("%d\t",data[i][j]);
printf("\n");
}
}

main()
{
int i=-1,j=0,n,x=1,k,s;
printf("Input n:");
scanf("%d",&n);
s=n*n;
for(k=1;k<=s;k++)
{