数组-13. 螺旋方阵(20)

来源:互联网 发布:数据库实训考试 编辑:程序博客网 时间:2024/05/16 23:40

所谓“螺旋方阵”,是指对任意给定的N,将1到N*N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入NxN的方阵里。本题要求构造这样的螺旋方阵。

输入格式:

输入在一行中给出一个正整数N(<10)。

输出格式:

输出NxN的螺旋方阵。每行N个数字,每个数字占3位。

输入样例:
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>#define M 10int main(){    int a[M][M];    int n, i = 0, j = 0, loop = 0, count = 1;        scanf("%d", &n);    a[0][0] = count++;    while (loop < n/2) {        while (++j < n - loop) {            a[i][j] = count++;        }        j--;        while (++i < n - loop) {            a[i][j] = count++;        }        i--;        while (--j >= loop) {            a[i][j] = count++;        }        j++;        while (--i > loop) {            a[i][j] = count++;        }        i++;                loop++;    }    if (n % 2 && n != 1) {        a[n/2][n/2] = count;    }    for (i=0; i<n; i++) {        for (j=0; j<n; j++) {            printf("%3d", a[i][j]);        }        printf("\n");    }        return 0;}


0 0
原创粉丝点击