您的位置:首页 > 其它

程序3-3 蛇形填数

2016-07-19 16:02 323 查看
算法竞赛入门经典(第2版)第3章 数组和字符串

程序3-3 蛇形填数

感悟。

1、写一段代码,测试一段(printf),成功率极高。

2、代码可读性强,增加了注释部分。

 

附上代码:

环境 Dev-cpp4.9.9.2

#include <stdio.h>

int a[10][10];

int n;

void printa(){

    int i,j;

    for(i=1;i<=n;i++){

        for(j=1;j<=n;j++){

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

        }

        printf("\n");

    }

}

int main(){

    int i,j;

    int k=0;

    int count=0;

    scanf("%d",&n);

    while(1){

        for(i=1+k;i<=n-k;i++){//右列 

            j=n-k;

            count++;

            a[i][j]=count;

        }

        

        for(j=n-1-k;j>=1+k;j--){//下行 

            i=n-k;

            count++;

            a[i][j]=count;

        }

        

        for(i=n-1-k;i>=1+k;i--){//左列 

            j=1+k;

            count++;

            a[i][j]=count;

        }

        

        for(j=2+k;j<=n-1-k;j++){//上行 

            i=1+k;

            count++;

            a[i][j]=count;

        }

        

        k++;//控制二维矩阵左右边界 

        if(count==n*n)//循环结束条件。 

            break;

    }

    printa();//打印矩阵 

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: