c++构造一个二维数组,并以矩阵的形式输出
时间: 2023-05-16 16:05:03 浏览: 87
好的,以下是构造一个二维数组并以矩阵的形式输出的代码示例:
```c
#include <stdio.h>
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
1 2 3
4 5 6
7 8 9
```
希望能对您有所帮助。
相关问题
c++矩阵类用一维数组存储矩阵元素实现矩阵的转置
可以通过将二维数组展开成一维数组,然后利用下标计算实现矩阵的转置,代码如下:
```c++
class Matrix {
private:
int rows, cols;
int *data; // 一维数组存储矩阵元素
public:
// 构造函数和析构函数
Matrix(int r, int c) : rows(r), cols(c) {
data = new int[rows * cols];
}
~Matrix() {
delete[] data;
}
// 计算一维数组下标
int index(int r, int c) {
return r * cols + c;
}
// 重载运算符
Matrix operator~() {
Matrix trans(cols, rows); // 新建一个转置矩阵
for (int i = 0; i < rows; i++)
for (int j = 0; j < cols; j++)
trans.data[trans.index(j, i)] = data[index(i, j)]; // 转置
return trans;
}
};
```
其中,`index`方法计算一维数组下标,用法如下:
```c++
Matrix m1(3, 2);
// 初始化矩阵元素
Matrix m2 = ~m1; // 转置矩阵
```
c++用运算符重载构造二维数组
可以使用运算符重载来构造二维数组,具体实现方式如下:
```c++
class Matrix {
private:
int **data;
int rows, cols;
public:
Matrix(int r, int c) : rows(r), cols(c) {
data = new int*[rows];
for (int i = 0; i < rows; i++) {
data[i] = new int[cols];
}
}
int* operator[](int i) {
return data[i];
}
};
int main() {
Matrix mat(3, 4);
mat[0][0] = 1;
mat[0][1] = 2;
mat[0][2] = 3;
mat[0][3] = 4;
mat[1][0] = 5;
mat[1][1] = 6;
mat[1][2] = 7;
mat[1][3] = 8;
mat[2][0] = 9;
mat[2][1] = 10;
mat[2][2] = 11;
mat[2][3] = 12;
return 0;
}
```
在上面的代码中,我们定义了一个 Matrix 类,它包含一个二维数组 data 和两个整数 rows 和 cols,分别表示矩阵的行数和列数。我们重载了 [] 运算符,使得可以通过 mat[i][j] 的方式来访问二维数组中的元素。在 main 函数中,我们创建了一个 3 行 4 列的矩阵 mat,并对其进行了赋值操作。