可變大小矩陣 PTA C++ 練習

可變大小矩陣

完成一個矩陣類,能夠存放二維數據,在構造函數中經過參數指定行數和列數,具備矩陣轉置的功能和顯示數據的功能。要求實現該矩陣類,使得主函數中的測試代碼能夠正確運行並獲得正確的結果。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

相關文章
相關標籤/搜索