二维数组回形遍历

【描述】Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

给定一个行列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组。如图所示:Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

二维数组回形遍历

【输入】Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输入的第一行上有两个整数,依次为和。Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

余下有行,每行包含个整数,构成一个二维整数数组。Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

(注:输入的和保证)Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输出】Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

按遍历顺序输出每个整数。每个整数占一行。Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【样例输入】Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

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

【样例输出】Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

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

【参考程序】Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

C++版本Wnn100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. #include <iostream> 
  2.  
  3. using namespace std; 
  4.  
  5. int main() 
  6.     int arr[105][105] = { 0 }; 
  7.     int row, col; 
  8.     cin >> row >> col; 
  9.     // 为二维数组赋值 
  10.     for (int i = 0;i < row;i++) 
  11.     { 
  12.         for (int j = 0;j < col;j++) 
  13.         { 
  14.             cin >> arr[i][j]; 
  15.         } 
  16.     } 
  17.     //左上角(a,b),右下角(c,d) 
  18.     int a = 0, b = 0, c = row - 1, d = col - 1; 
  19.     int cnt = row * col; 
  20.     while (cnt > 0) 
  21.     { 
  22.         // 避免一行或者一列情况的溢出,需要加cnt>0这个条件 
  23.         for (int j = b;j <= d && cnt > 0;j++) 
  24.         { 
  25.             cout << arr[a][j] << endl; 
  26.             cnt -= 1; 
  27.         } 
  28.         for (int i = a + 1;i <= c && cnt > 0;i++) 
  29.         { 
  30.             cout << arr[i][d] << endl; 
  31.             cnt -= 1; 
  32.         } 
  33.         for (int j = d - 1;j >= b && cnt > 0;j--) 
  34.         { 
  35.             cout << arr[c][j] << endl; 
  36.             cnt -= 1; 
  37.         } 
  38.         for (int i = c - 1;i >= a + 1 && cnt > 0;i--) 
  39.         { 
  40.             cout << arr[i][b] << endl; 
  41.             cnt -= 1; 
  42.         } 
  43.         a += 1; 
  44.         b += 1; 
  45.         c -= 1; 
  46.         d -= 1; 
  47.     } 
  48.     return 0; 

关 键 词

二维数组回形遍历

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢