3. 数组练习题:矩阵转置 交换二维数组“int[ ][ ]array = {{91,25,8},{56,14,2},47,3,67}};”的行、列数据。
时间: 2023-08-19 08:39:40 浏览: 49
可以使用两个循环来实现矩阵的转置,具体步骤如下:
1. 先遍历数组,确定原始数组的行数和列数;
2. 创建一个新的数组,交换原始数组的行和列;
3. 将交换后的数据复制到新数组中。
下面是实现代码:
```java
int[][] array = {{91,25,8},{56,14,2},{47,3,67}};
// 获取原始数组的行数和列数
int rows = array.length;
int cols = array[0].length;
// 创建一个新的数组,并交换原始数组的行和列
int[][] transposedArray = new int[cols][rows];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
transposedArray[j][i] = array[i][j];
}
}
// 打印转置后的数组
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
System.out.print(transposedArray[i][j] + " ");
}
System.out.println();
}
```
输出结果:
```
91 56 47
25 14 3
8 2 67
```
相关问题
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语言实现四维数组矩阵转置的代码:
```c
#include <stdio.h>
int main() {
int a[2][2][2][2], b[2][2][2][2];
int i, j, k, l;
// 初始化四维数组a
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
for (k = 0; k < 2; k++) {
for (l = 0; l < 2; l++) {
a[i][j][k][l] = i + j + k + l;
}
}
}
}
// 矩阵转置
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
for (k = 0; k < 2; k++) {
for (l = 0; l < 2; l++) {
b[l][k][j][i] = a[i][j][k][l];
}
}
}
}
// 输出转置后的矩阵
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
for (k = 0; k < 2; k++) {
for (l = 0; l < 2; l++) {
printf("%d ", b[i][j][k][l]);
}
printf("\n");
}
printf("\n");
}
printf("\n");
}
return 0;
}
```
该代码中,我们定义了一个四维数组a,并将其初始化。然后,我们使用四重循环将a数组转置到b数组中。最后,我们输出转置后的矩阵b。
--相关问题--:
1. C语言中如何定义多维数组?
2. 如何在C语言中实现矩阵乘法