该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
运行结果:
please input a number between 1 to 99
10
1   2   3   4   5   6   7   8   9   10
36  37  38  39  40  41  42  43  44  11
35  64  65  66  67  68  69  70  45  12
34  63  84  85  86  87  88  71  46  13
33  62  83  96  97  98  89  72  47  14
32  61  82  95  100 99  90  73  48  15
31  60  81  94  93  92  91  74  49  16
30  59  80  79  78  77  76  75  50  17
29  58  57  56  55  54  53  52  51  18
28  27  26  25  24  23  22  21  20  19
Press any key to continue
程序清单
#include
int n;
int count=1;
int a[100][100]={0};
void eva(int x)
{
        register        int     i=x;
        register        int     j=x;
        if(2*x>n)
                a[i][j]=count++;
        else
        {
                for(;j<=n-x;j++)
                        a[i][j]=count++;
                for(;i<=n-x;i++)
                        a[i][j]=count++;
                for(;j>x;j--)
                        a[i][j]=count++;
                for(;i>x;i--)
                        a[i][j]=count++;
        }
}
int main(void)
{
        int        y=1;
        register        int     i;
        register        int     j;
        printf("please input a number between 1 to 99\n");
        while(scanf("%d",&n),n>99 || n<1);
        while(y<=n/2+n%2)
                eva(y++);
        for(i=1;i<=n;i++)
        {
                for(j=1;j<=n;j++)
                        printf("%-4d",a[i][j]);
                putchar('\n');
        }
        return 0;
}