HJ123 发表于 2019-10-4 11:29:40

实现蛇形数列

1   2   3   4   5   6   78   910
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

superbe 发表于 2019-10-6 17:30:00

本帖最后由 superbe 于 2019-10-6 17:35 编辑

#include <stdio.h>
#define N 10//方阵大小(行数=列数)

int main()
{
        int i=0,j=0,fi=0,fj=1;
        int k,n=N-1;
        int arr;
        for(k=1;k<=N*N;k++){
                arr=k;
                i+=fi; j+=fj;
                if(i==N-1-n && j==n){
                        fi=1; fj=0;
                }else if(i==n && j==n){
                        fi=0; fj=-1;
                }else if(i==n && j==N-1-n){
                        fi=-1; fj=0;
                }else if(i==N-n && j==N-1-n){
                        fi=0; fj=1;
                        n--;
                }
        }
        for(i=0;i<N;i++){
                for(j=0;j<N;j++) printf("%3d ",arr);
                printf("\n");
        }
        return 0;
}
页: [1]
查看完整版本: 实现蛇形数列