首页 > 代码库 > 矩阵翻转:

矩阵翻转:

技术分享

输入格式

每次程序运行时,首先在第一行输入 2个整数,分别对应题目描述中的 m和 n(1 <= m,n <= 100),两个整数之间用一个空格分隔。

接下来输入 m 行,每行包含 n个整数,每两个整数之间用一个空格分隔。

接下来输入一行,输入一个整数为1或0。当输入为1时对矩阵进行水平翻转;当输入为0时对矩阵进行竖直翻转。

输出格式

输出包括 m行,每行包含 n个整数,按要求输出翻转后的矩阵,每行任意两个整数之间用一个空格分隔,每行最后一个整数后面没有空格。

样例输入1

2 3
1 2 3
3 4 6
1
样例输出1

3 2 1
6 4 3
样例输入2

3 2
1 2
3 4
5 6
0
样例输出2

5 6
3 4
1 2

 1 #include "stdafx.h"
 2 #include <iostream>
 3 using namespace std;
 4 
 5 int main() 
 6 {
 7     int matrix[100][100];   //定义数组100*100
 8     int m;                         //
 9     int n;                        //
10     int i, j, k;                 //定义
11     cin >> m >> n;                        //输入行、列
12 
13     for (i = 0; i<m; i++)      //
14     {
15         for (j = 0; j<n; j++)     //
16         {
17             cin >> matrix[i][j];            //输入数组
18         }
19     }
20 
21     cin >> k;               //输入0和1
22 
23     if (k == 0) 
24     {
25         for (i = m - 1; i >= 0; i--)     //i从最大标递减1
26         {
27             for (j = 0; j<n; j++) 
28             {
29                 cout << matrix[i][j];
30                 if (j == n - 1)     //当列为最大标时停止
31                 {
32                     break;
33                 }
34                 else 
35                 {
36                     cout << " ";
37                 }
38             }
39             cout << endl;
40         }
41     }
42 
43 
44     else if (k == 1) 
45     {
46         for (i = 0; i<m; i++) 
47         {
48             for (j = n - 1; j >= 0; j--)   //j从最大标递减1
49             {
50                 cout << matrix[i][j];
51                 if (j == 0)       //当列为0时  停止
52                 {
53                     break;
54                 }
55                 else 
56                 {
57                     cout << " ";
58                 }
59             }
60             cout << endl;
61         }
62     }
63     return 0;
64 }

 

矩阵翻转: