可變大小矩陣
完成一個矩陣類,能夠存放二維數據,在構造函數中經過參數指定行數和列數,具備矩陣轉置的功能和顯示數據的功能。要求實現該矩陣類,使得主函數中的測試代碼能夠正確運行並獲得正確的結果。ios
函數接口定義:
實現矩陣類函數
裁判測試程序樣例:
/* 請在這裏填寫答案 */ int main(){ int r,c; cin>>r>>c; Matrix m(r,c); // 初始大小 2行3列 m.input(); cout<<"datas before:"<<endl; m.show(); m.transform(); cout<<"datas after:"<<endl; m.show(); }
輸入樣例:
首先輸入兩個整數表明行數和列數,而後輸入矩陣元素。測試
3 2 1 2 3 4 5 6spa
輸出樣例:
分別輸出轉置以前和以後的矩陣數據。例如:code
datas before: 1 2 3 4 5 6 datas after: 1 3 5 2 4 6orm
思路分析:
本質上就是對一個矩陣進行轉置
, 只不過用類
實現罷了.blog
參考代碼:
#include <iostream> #include <cstdio> #include <cstring> #define a 2262 using namespace std; class Matrix{ public: double b; double c; int d[a][a]; Matrix(int e, int f){ b = e;c = f;} void show(){ for(int g = 0; g < b; g++){ for(int h = 0; h < c; h++){ cout << " " << d[g][h]; } cout << "\n"; } } void input(){ for(int i = 0; i < b; ++i){ for(int j = 0; j < c; ++j){cin >> d[i][j];}}} void transform(){ int x[10][10]; for(int k = 0; k < b; ++k){ for(int l = 0; l < c; ++l){ x[l][k] = d[k][l];} } for(int i = 0; i < c; ++i){ for(int j = 0; j < b; ++j){ x[j][i] = d[i][j]; } } int z = c; c = b; b = z; } };
運行結果:
覆盤:
不少朋友和我說提交結果不對, 請注意我選擇的編譯器(C++11), 不要拿 C
的編譯器, 更有甚者拿 Java
編譯器問我爲啥編譯錯誤.接口
若是有其餘問題, 歡迎下方留言, 看到全力解決.ci