zoukankan      html  css  js  c++  java
  • 二维数组回形遍历(转)

    http://noi.openjudge.cn/ch0108/23/

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组。如图所示:

    输入输入的第一行上有两个整数,依次为row和col。
    余下有row行,每行包含col个整数,构成一个二维整数数组。
    (注:输入的row和col保证0 < row < 100, 0 < col < 100)输出按遍历顺序输出每个整数。每个整数占一行。样例输入

    4 4
    1 2 3 4
    12 13 14 5
    11 16 15 6
    10 9 8 7

    样例输出

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    代码如下:
    复制代码
     1 #include <stdio.h>
     2 #define maxN 101
     3 int main(int argc, char *argv[])
     4 {
     5     int row,col,i,j,k;
     6     int a[maxN][maxN];
     7     int count;
     8     
     9     scanf("%d%d",&row,&col);
    10     for(i=0;i<row;i++)
    11     {
    12         for(j=0;j<col;j++)
    13         {
    14             scanf("%d",&a[i][j]);
    15         }
    16     }
    17     
    18     if(row==1)//只有一行
    19     {
    20         i=0;j=0; 
    21         for(k=1;k<=col;k++)
    22         { printf("%d
    ",a[i][j]);j++;}
    23     }
    24     else if(col==1)//只有一列
    25     {
    26         i=0;j=0;
    27         for(k=1;k<=row;k++)
    28         { printf("%d
    ",a[i][j]);i++;}
    29     }
    30     else
    31     {
    32         i=0;j=0;
    33         count=row*col;
    34         while(count>0)
    35         {
    36             for(k=1;k<col;k++)
    37             { count--; printf("%d
    ",a[i][j]);j++;}  //输出一个环的上面那一条边 
    38             
    39             for(k=1;k<row;k++)
    40             { count--; printf("%d
    ",a[i][j]);i++;}  //输出一个环的右侧那一条边
    41             
    42             for(k=1;k<col;k++)
    43             { count--; printf("%d
    ",a[i][j]);j--;}  //输出一个环的下面那一条边
    44             
    45             for(k=1;k<row;k++)
    46             { count--; printf("%d
    ",a[i][j]);i--;}  //输出一个环的左侧那一条边
    47             
    48             i++;
    49             j++;
    50             row-=2;
    51             col-=2;
    52             if(row==1)//只剩下一行
    53             {
    54                 for(k=1;k<=col;k++)
    55                 { count--; printf("%d
    ",a[i][j]);j++;}
    56             }
    57             else if(col==1)//只剩下一列
    58             {
    59                 for(k=1;k<=row;k++)
    60                 { count--; printf("%d
    ",a[i][j]);i++;}
    61             }
    62         }
    63     }
    64     return 0;
    65 }
    复制代码
    http://www.cnblogs.com/huashanqingzhu/p/5666473.html
  • 相关阅读:
    [MySQL] 日志文件概述
    ASP.NET session expired simple solution
    Sailfish应用开发入门(一)ApplicationWindow与Cover
    linux下QT4的使用
    js控制图片定时切换不限制数量
    C++ 从零单排(3)
    wordcraft(陈高远)
    苦逼翻滚之实习找工记事产品岗(3.184.23长文慎入)
    【Oracle导入导出】expdp
    【leetcode】Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/wangbin/p/10277212.html
Copyright © 2011-2022 走看看