施虐的恋人无百度云:C语言编程问题!急求!

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 15:56:15
用数组实现n*n螺旋,如:
5*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()
{
const int N=5;
int s[N][N];
int t=0,turn;
int x,y;
for(int i=N;i>=1;i--)
{
if(i==N)
{
for(int j=0;j<N;j++)
{
s[i-N][j]=j+1;
}
t++;
x=N-1;
y=0;
continue;
}
else
{
for(int m=0;m<2;m++)
{
for(int k=1;k<=i;k++)
{
turn=t%4;
switch(turn)
{
case 0:
x++;
s[y][x]=s[y][x-1]+1;
break;
case 1:
y++;
s[y][x]=s[y-1][x]+1;
break;
case 2:
x--;
s[y][x]=s[y][x+1]+1;
break;
case 3:
y--;
s[y][x]=s[y+1][x]+1;
break;
}
}
t++;
}
}
}
for(int p=0;p<N;p++)
{
for(int q=0;q<N;q++)
{
printf("%d ",s[p][q]);
}
printf("\n");
}
}

printf("A")