关闭

顺时针螺旋打印二维数组

67人阅读 评论(0) 收藏 举报
分类:

一个二维数组以顺时针螺旋的方式打印出来

* 例如,对数组:

1     2    3    4    5

14  15  16  17   6

13  20  19  18   7

12  11  10   9    8

* 打印出来的序列应该是:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

 程序:

  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4.   
  5. int main(int argc, char **argv){  
  6.   
  7.     int a[4][5]={{1,2,3,4,5},  
  8.                {14,15,16,17,6},  
  9.                {13,20,19,18,7},  
  10.                {12,11,10,9,8}};  
  11.     int left=0, right=4;  
  12.     int low=0, high=3;  
  13.     while(left<right||low<high)  
  14.     {  
  15.         for(int i=left; i<=right; i++){  
  16.             cout<<a[low][i]<<" ";  
  17.         }  
  18.         low++;  
  19.           
  20.         for(int i=low; i<=high; i++){  
  21.             cout<<a[i][right]<<" ";  
  22.         }  
  23.         right--;  
  24.           
  25.         for(int i=right; i>=left; i--){  
  26.             cout<<a[high][i]<<" ";  
  27.         }  
  28.         high--;  
  29.           
  30.         for(int i=high; i>=low; i--){  
  31.             cout<<a[i][left]<<" ";  
  32.         }  
  33.         left++;          
  34.     }      
  35.     return 0;     
  36. }  
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2815次
    • 积分:202
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:10篇
    • 译文:0篇
    • 评论:2条
    最新评论