zoukankan      html  css  js  c++  java
  • 输出螺旋矩阵

     1 //使用gcc完成一个matrix
     2 //要求输入两个整数m,n ,得到一个螺旋矩阵。
     3 //如输入3,4返回
     4 //A B C D
     5 //J K L E
     6 //I H G F
     7 
     8 #include <stdio.h>
     9 #include <string.h>
    10 const int ROW_SIZE = 10;
    11 const int COLUMN_SIZE =10;
    12 
    13 int main()
    14 {
    15     int array[ROW_SIZE][COLUMN_SIZE];
    16     memset(array, 0, sizeof(array));
    17     int i,j;
    18 
    19     int x = 0;
    20     int y = 0;
    21     int M,N;
    22     printf("请输入M,N
    ");
    23     scanf("%d%d",&M,&N);
    24     int totalStep = M*N;
    25     /*
    26      * 0 turn right
    27      * 1 turn down
    28      * 2 turn left
    29      * 3 turn up
    30      */
    31     int dir = 0;
    32     int count = 65;
    33     while(1){
    34         array[x][y] = count;
    35     
    36         if(0 == dir){
    37             if( ( (y+1) == N) || (array[x][y+1] != 0) ){
    38                 dir = (dir+1)%4;
    39                 x = x + 1;
    40             }
    41             else{
    42                 y = y + 1;
    43             }
    44         }
    45         else if(1 == dir){
    46             if( ( (x+1) == M) || (array[x+1][y] != 0) ){
    47                 dir = (dir + 1)%4;
    48                 y = y -1;
    49             }
    50             else{
    51                 x = x + 1;
    52             }
    53         }
    54         else if(2 == dir){
    55             if( ( (y-1) < 0) || (array[x][y-1] != 0) ){
    56                 dir = (dir + 1)%4;
    57                 x = x - 1;
    58             }
    59             else{
    60                 y = y - 1;
    61             }
    62         }
    63         else if(3 == dir){
    64             if( ( (x-1) < 0) || (array[x-1][y] != 0) ){
    65                 dir = (dir + 1)%4;
    66                 y = y + 1;
    67             }
    68             else{
    69                 x = x - 1;
    70             }
    71         }
    72 
    73         //break or add moveStep
    74         if(count == totalStep+64)
    75             break;
    76         else
    77             count++;
    78     }
    79 
    80     //print
    81     for( i = 0; i < M; i++){
    82         for( j= 0; j < N; j++)
    83             printf("%3c", array[i][j]);
    84         printf("
    ");
    85     }
    86     return 0;
    87 }

  • 相关阅读:
    淘宝网的质量属性的六个常见属性场景
    架构漫谈读书笔记
    软件架构师的工作流程
    centos7通过docker安装mysql
    centos7下安装docker
    VMware 虚拟机下CentOS 7连接网络
    在JSP中使用el函数标签获取默认值(男女性别选项)
    ssm登录与退出
    MVC(Model -View-Controller)实例应用模式
    MVC模式
  • 原文地址:https://www.cnblogs.com/-rfq/p/6872252.html
Copyright © 2011-2022 走看看