zoukankan      html  css  js  c++  java
  • N*N矩阵的旋转 不开辟新空间

    /*

       N*N矩阵的旋转

       不开辟新空间 

      programmer:qpz

      time:2014-11-09

    */

    #include <iostream>

    using namespace std;

    //#define MAX 3

    const int MAX=3;

    class cou{

    private:

    int x;

    int y;

    char num[MAX][MAX];

    public:

    cou(){}

    cou(char num[MAX][MAX]);

    void Prin(void);

    void rotate(void);

    }; 

    void Init(char a[MAX][MAX],int n,int m);

    int main(void)

    {

    char arr[MAX][MAX],time;

    Init(arr,MAX,MAX);

    cou Matrix;

    Matrix=cou(arr);

        Matrix.Prin();

        cout<<"请输入旋转几次:"<<endl;

    cin>>time;

    time=time%4;

    while(time--){

    Matrix.rotate();

    Matrix.Prin();

    return 0;

    }/*end main*/

    void Init(char a[MAX][MAX],int n,int m)

    {

    int i,j;

    cout<<"请输入矩阵3*3"<<endl; 

    for(i=0;i<n;i++){

    for(j=0;j<m;j++){

    cin>>a[i][j];

    }/*end for*/

    }/*end for*/

    }/*end Init*/

    cou::cou(char num[MAX][MAX])

    {

    for(x=0;x<MAX;x++){

    for(y=0;y<MAX;y++){

    this->num[x][y]=num[x][y];

    }/*end for*/

    }/*end for*/

    }/*end cou()*/

    void cou::Prin(void)

    {

    for(int i=0;i<MAX;i++){

    for(int j=0;j<MAX;j++){

    cout<<num[i][j];

    }/*end for*/

    cout<<endl;

    }/*end for*/

    }/*end Prin()*/

    void cou::rotate(void)

    {

        //cout<<"首先行列互换"<<endl;

    for(x=0;x<MAX;x++){

    for(y=1+x;y<MAX;y++)

    {

    num[x][y]=num[x][y]^num[y][x];

    num[y][x]=num[x][y]^num[y][x];

    num[x][y]=num[x][y]^num[y][x];

    } /*end for*/

    }/*end for*/

    //Prin();

    //cout<<endl<<"然后进行左右互换"<<endl;

    for(x=0;x<MAX;x++){

    for(y=0;y<MAX/2;y++){

    num[x][y]=num[x][y]^num[x][MAX-y-1];

    num[x][MAX-y-1]=num[x][y]^num[x][MAX-y-1];

    num[x][y]=num[x][y]^num[x][MAX-y-1];

    } /*end for*/

    }/*end for*/

    //Prin();

  • 相关阅读:
    js 多媒体文件(图片,表格 等) 下载方法
    CentOS7 + asp.net core 3.1 + mysql 8 配置备忘
    项目管理平台参考设计
    golang 使用rate实现redis qps令牌桶限流
    golang执行命令实时输出(协程通过channel更新数据到主进程)
    go-chart go后端生成图表base64
    go-chart go后端生成图表base64
    golang OOM分析
    Golang xorm time自定义解析
    python 多线程
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457677.html
Copyright © 2011-2022 走看看