螺旋矩阵

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

给定正整数N,输出如上所示N*N矩阵。

代码:

#include<stdio.h>
#include<iostream>
using namespace std;
int m[100][100];
int main()
{
    int N;
    int cnt;
    while(scanf("%d",&N)!=EOF)
    {
        cnt = 0;
        for(int i=0; i<N/2; ++i)
        {
            for(int j=i; j<N-1-i; ++j)
                m[i][j]=++cnt;
            for(int j=i; j<N-1-i; ++j)
                m[j][N-1-i] = ++cnt;
            for(int j=N-1-i; j>i; --j)
                m[N-1-i][j] = ++cnt;
            for(int j=N-1-i; j>i; --j)
                m[j][i] = ++cnt;
        }
        if(N%2==1)
            m[N/2][N/2] = ++cnt;
        for(int i=0; i<N; ++i)
        {
            for(int j=0; j<N; ++j)
                printf("%d ",m[i][j]);
            printf(" ");
        }
    }
    return 0;
}


只有自己可以帮助自己
原文地址:https://www.cnblogs.com/lemonhanyu/p/5296610.html