把矩陣順時針旋轉90度

來源:互聯網
上載者:User

資料結構分析:矩陣的儲存要用到二維數組,但是要考慮到儲存轉換後的矩陣,由於行和列不可等相等,所以必須定義兩個二維數組分別儲存。

題目分析:關鍵在於行列的轉換,首先原矩陣的行變換為轉換為轉換後的列,原矩陣的列轉換為轉換後的行,需要旋轉90度,所以原來的行轉換為列後的值應該為MAC_ROW - row  - 1, MAC_ROW 為原矩陣的總行數,row為當前要轉換的元素所在的行,由於row從0開始,所以要再減去1。

#include <iostream>#define MAC_ROW 3#define MAC_COL 4using namespace std;int main(){//define original matrix and set default value 0int OriMatrix[MAC_ROW][MAC_COL] = {0};//define converted matirxint ConvMatrix[MAC_COL][MAC_ROW] = {0};int elem = 0;//initialint row = 0;for(; row < MAC_ROW; row++){for(int col = 0; col < MAC_COL; col++){cin>>elem;OriMatrix[row][col] = elem;ConvMatrix[col][MAC_ROW - row - 1] = OriMatrix[row][col];}}//cout original matrixrow = 0;cout<<"original matrix:"<<endl;for(; row < MAC_ROW; row++){for(int col = 0; col < MAC_COL; col++){cout<<OriMatrix[row][col]<<"\t";}cout<<endl;}//cout converted matrixcout<<"converted matrix:"<<endl;row = 0;for(; row < MAC_COL; row++){for(int col = 0; col < MAC_ROW; col++){cout<<ConvMatrix[row][col]<<"\t";}cout<<endl;}system("pause");return 1;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.