已知一个二维数组a[5][4],求其转置矩阵b[4][5],并输出结果 c语言
时间: 2024-11-27 16:15:25 浏览: 10
C语言数组练习题.
在C语言中,如果你有一个二维数组`a[5][4]`,你需要创建一个新的二维数组`b[4][5]`作为它的转置。这是一个简单的元素级复制过程,因为你只需要将行索引变成列索引,列索引变成行索引。以下是手动实现这一操作的示例:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 4
void transpose(int a[][COLS], int b[][ROWS]) {
for (int i = 0; i < ROWS; ++i) { // 遍历原数组的行
for (int j = 0; j < COLS; ++j) { // 遍历原数组的列
b[j][i] = a[i][j]; // 将当前元素复制到转置数组对应位置
}
}
}
// 输出转置后的数组
void print_array(int arr[][ROWS]) {
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int a[ROWS][COLS] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16},
{17, 18, 19, 20}
};
int b[COLS][ROWS];
transpose(a, b);
printf("Original array:\n");
print_array(a);
printf("\nTransposed array:\n");
print_array(b);
return 0;
}
```
当你运行这个程序,它会首先打印出原始数组`a`,然后打印出转置后的数组`b`。
阅读全文