码迷,mamicode.com
首页 > 编程语言 > 详细

二维数组(矩阵)之将矩阵旋转90度

时间:2019-04-14 17:51:47      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:alt   space   ack   names   题目   return   src   style   90度   

将矩阵旋转90度:

题目描述:

例如将一个5*5的矩阵顺时针旋转90度:旋转前

1       2        3         4         5

6       7        8         9        10

11    12      13      14       15

16    17      18      19       20

21    22      23      24       25

选转后:

21     16      11       6        1

22     17      12       7        2

23     18      13       8        3

24     19      14       9        4

25     20      15      10      5

分析:如果N是偶数,则矩阵构成N/2圈;如果N是奇数,则矩阵构成(N-1)/2 圈;

           将矩阵顺时针旋转90度,就是将每圈的元素在4个方位依次轮换位置:

 技术图片

交换元素的公式如下:

                              ai,j    ------------->aj,N-i+1

                                             ↑                             ↓

                                             ↑                             ↓

                                     aN-j+1 ---------->aN-i+1,N-j+1

代码如下:

 1 /* */
 2 # include <iostream>
 3 # include <cstdio>
 4 # include <iomanip>
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     int a[20][20], i, j, p=1, t, n;
10     printf("请输入矩阵的阶:\n");
11     scanf("%d", &n);
12     printf("*******旋转前的矩阵*******\n");
13     for( i=1; i<=n; i++ )
14     {
15         for( j=1; j<=n; j++ )
16         {
17             a[i][j] = p++;
18             printf("%4d", a[i][j]);
19         }
20         printf("\n");
21     }
22     printf("*******顺时针旋转后的矩阵*******\n");
23     for( i=1; i<=n/2; i++ )
24     {
25         for( j=i; j<n-i+1; j++ )
26         {
27             t = a[i][j];
28             a[i][j] = a[n-j+1][i];
29             a[n-j+1][i] = a[n-i+1][n-j+1];
30             a[n-i+1][n-j+1] = a[j][n-i+1];
31             a[j][n-i+1] = t;
32         }
33     }
34     for( i=1; i<=n; i++ )
35     {
36         for( j=1; j<=n; j++ )
37         {
38             printf("%4d", a[i][j]);
39         }
40         printf("\n");
41     }
42     return 0;
43 }

 

 

二维数组(矩阵)之将矩阵旋转90度

标签:alt   space   ack   names   题目   return   src   style   90度   

原文地址:https://www.cnblogs.com/wsy107316/p/10705963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!