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

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

* 例如,对数组:

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

 程序:

#include <iostream>
using namespace std;


int main(int argc, char **argv){

    int a[4][5]={{1,2,3,4,5},
               {14,15,16,17,6},
               {13,20,19,18,7},
               {12,11,10,9,8}};
    int left=0, right=4;
    int low=0, high=3;
    while(left<right||low<high)
    {
        for(int i=left; i<=right; i++){
            cout<<a[low][i]<<" ";
        }
        low++;
        
        for(int i=low; i<=high; i++){
            cout<<a[i][right]<<" ";
        }
        right--;
        
        for(int i=right; i>=left; i--){
            cout<<a[high][i]<<" ";
        }
        high--;
        
        for(int i=high; i>=low; i--){
            cout<<a[i][left]<<" ";
        }
        left++;        
    }    
    return 0;   
}


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值