• C语言 · 回形取数


    基础练习 回形取数  
    时间限制:1.0s   内存限制:512.0MB
          
    问题描述
      回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
    输入格式
      输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
    输出格式
      输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
    样例输入
    3 3
    1 2 3
    4 5 6
    7 8 9
    样例输出
    1 4 7 8 9 6 3 2 5
    样例输入
    3 2
    1 2
    3 4
    5 6
    样例输出
    1 3 5 6 4 2
     
     1 #include<stdio.h> 
     2 int main(){
     3     int m,n;
     4     scanf("%d%d",&m,&n);
     5     int a[m][n];
     6     //输入矩阵 
     7     for(int i=0;i<m;i++){
     8         for(int j=0;j<n;j++){
     9             scanf("%d",&a[i][j]);
    10         }
    11     }
    12     int sum=m*n;//矩阵中数的总数 
    13     int i,j;
    14     i=-1;
    15     j=0;
    16     while(sum){
    17         //首先向下走:列数不变,行数+1
    18         //终止条件:无路可走或已经取过 
    19         while(a[++i][j]!=-1 && i<m){
    20             printf("%d ",a[i][j]);//输出取到的数 
    21             a[i][j]=-1;//取过后将该位置值置为-1
    22             sum--;//每取出一个数,总数减1 
    23         }
    24         i--;//回到当前行,因为前面的++i,让i大了一个 
    25         
    26         //向下走不通了左转就向右走:行数不变,列数+1 
    27         while(a[i][++j]!=-1 && j<n){
    28             printf("%d ",a[i][j]);
    29             a[i][j]=-1;
    30             sum--; 
    31         }
    32         j--;//回到当前列,因为前面的++j,让j大了一个 
    33         
    34         //向右走不通了左转就向上走 : 列数不变,行数-1
    35         //终止条件:无路可走或已经取过
    36         while(a[--i][j]!=-1 && i>=0){  
    37             printf("%d ",a[i][j]);//输出取到的数
    38             a[i][j]=-1;//取过后将该位置值置为-1 
    39             sum--;//每取出一个数,总数减1 
    40         }  
    41         i++;//回到当前行,因为前面的--i,让i小了一个
    42         
    43         //向上走不通了左转就向左走:行数不变,列数-1
    44         while(a[i][--j]!=-1 && j>=0){  
    45             printf("%d ",a[i][j]);
    46             a[i][j]=-1;  
    47             sum--;  
    48         }  
    49         j++;//回到当前列,因为前面的--j,让j小了一个
    50     }
    51 }
  • 相关阅读:
    Django
    ionic创建项目报错Error: read ECONNRESET at _errnoException (util.js:992:11) at TLSWrap.onread (net.js:618:25)
    转《vue引入第三方js库》
    转《在浏览器中使用tensorflow.js进行人脸识别的JavaScript API》
    微信小程序自定义组件
    小程序中尽量少使用定时器
    解决小程序webview缓存机制
    小程序获取当前页面URL
    6s ios9.0平台 微信小程序的fixed定位兼容性问题
    如何使用nodejs快速搭建本地服务器
  • 原文地址:https://www.cnblogs.com/panweiwei/p/6527325.html
Copyright © 2020-2023  润新知