蛇形填数

来源:互联网 发布:网络推广工资待遇 编辑:程序博客网 时间:2024/05/19 19:56

蛇形填数

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
输入直接输入方陈的维数,即n的值。(n<=100)输出输出结果是蛇形方陈。样例输入3样例输出7 8 1 6 9 2 5 4 3

//c语言

#include<stdio.h>

#define m 100

int main()

{

    int i,j,b,n,k=1;

    int a[m][m];

    scanf("%d",&n);

    i=0;j=n-1;

    for(b=0;b<=(n+1)/2;b++)

    {

    //向下

    for(;i<n-b;i++)

    {

    a[i][j]=k++;

    }

    i--;

    j--;

    //向左

    for(;j>=b;j--)

    {

    a[i][j]=k++;

    }

    j++;

    i--;

    //向上

    for(;i>=b;i--)

    {

    a[i][j]=k++;

    }

    i++;

    j++;

    //向右

    for(;j<n-b-1;j++)

    {

    a[i][j]=k++;

    }

    j--;

    i++;

    }

    for(i=0;i<n;i++)

    {

    for(j=0;j<n;j++)

    {

    printf("%5d",a[i][j]);

    }

    printf("\n");

    }

    return 0;

}

0 0
原创粉丝点击