zoukankan      html  css  js  c++  java
  • 旋转n阶矩阵

    1   2   3

    4   5   6

    7   8   9

    顺时针旋转90度

    7   4   1

    8   5   2

    9   6   3

    解题方法:

    (1)上下颠倒:

    7   8   9

    4   5   6

    1   2   3

    (2)反斜杠对角线折叠

    7   4   1

    8   5   2

    9   6   3

    代码:

     1 #include<stdio.h>
     2 #define N 5 //矩阵的阶数 
     3 
     4 /*交换两个变量值*/
     5 void swap(int* a,int* b) {
     6     int temp = *a;
     7     *a = *b;
     8     *b = temp;
     9 }
    10 /*顺时针旋转矩阵90度*/
    11 void xuanzhuan(int a[][N]) {//只写列N,不要写行N 
    12     
    13     /*上下颠倒*/
    14     int i = 0;
    15     int j = N - 1;
    16     
    17     while(i < j) {
    18         int temp;
    19         
    20         for(int k = 0;k <= N-1;++k) 
    21             swap(&a[i][k],&a[j][k]);
    22         
    23         ++i;
    24         --j;
    25     }
    26     
    27     /*对角线翻转*/
    28     for(int k = 0;k < N-1;++k) 
    29         for(i = k;i <= N-1;++i) 
    30             swap(&a[k][i],&a[i][k]);
    31 }
    32 
    33 int main() {
    34     int a[N][N] = {{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}};
    35     xuanzhuan(a);//传参时,只写二维数组的基地址,不要带括号 
    36     for(int i = 0;i<N;++i) {
    37         for(int j = 0;j<N;++j) {
    38             printf("%2d ",a[i][j]);
    39         }
    40         printf("
    ");
    41     }
    42     
    43     
    44     return 0;
    45 }

  • 相关阅读:
    Django基础命令
    ubuntu中python项目独立的虚拟环境
    Springboot项目的小问题
    redis
    ubuntu系统根目录下各个目录用途说明
    SpringBoot 在IDEA中实现热部署
    SpringBoot访问不到webapp下的内容
    httpServeltRequest和Model传值的区别
    map的输出
    主流框架排名
  • 原文地址:https://www.cnblogs.com/joyeehe/p/7994080.html
Copyright © 2011-2022 走看看