可变大小矩阵
完成一个矩阵类,能够存放二维数据,在构造函数中经过参数指定行数和列数,具备矩阵转置的功能和显示数据的功能。要求实现该矩阵类,使得主函数中的测试代码能够正确运行并获得正确的结果。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