比比你的速度,一个简单的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 03:59:06
要求输入一个数n 按如下输出,当n=3
1 2 3
8 9 4
7 6 5
当n=4 时
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
把正确程序发上来,随便把你编写程序所用的时间也发上来,呵呵

不怎么简单啊

这个有好几种写法吧
以前写的一个测试.时间好像用了挺久呢.输入三个数.长.宽.方向.(为零向左旋.不为零向右)
#include "stdio.h"
int main()
{
int i,j,t;
while(scanf("%d%d%d",&j,&i,&t)!=EOF){
int n=1,h=0,s=0, k[31][31]={{},{}};
i--;j--;
while(t){
k[s][h]=n++;
if((h>=s || k[s-1][h]!=0) && h<j && k[s][h+1]==0 )h++;
else if( s<i && k[s+1][h]==0)s++;
else if( h>0 && k[s][h-1]==0)h--;
else if( s>0 && k[s-1][h]==0)s--;
else break;
}
while(!t){
k[s][h]=n++;
if((s>=h || k[s][h-1]!=0) && s<i && k[s+1][h]==0 )s++;
else if( h<j && k[s][h+1]==0)h++;
else if( s>0 && k[s-1][h]==0)s--;
else if( h>0 && k[s][h-1