2024年3月4日发(作者:)
c语言二维数组转置函数
1. 概述
二维数组的转置是将其每一行和每一列的位置对调得到一个新的二维数组,可以用于矩阵的转置等操作。本文代码中的二维数组都是int类型。
2. 实现
首先,我们需要明确一个概念,就是我们传递的数组参数,实际上是个指向数组首元素的指针。而二维数组在内存中是一段连续的内存地址,所以我们可以通过交换内存地址来达到转置的效果。
接下来,我们需要定义一个函数来接收二维数组参数和其行列数:
```c
void transpose(int array[][COLS], int rows, int cols) {
// 程序主体
}
```
其中`rows`和`cols`表示参数数组的行数和列数,由于二维数组传参必须指定列数,所以这里使用了`[COLS]`。接下来,我们需要定义两个循环来实现交换过程:
```c
void transpose(int array[][COLS], int rows, int cols) {
for(int i = 0; i < rows; i++) {
for(int j = i+1; j < cols; j++) {
int temp = array[i][j];
array[i][j] = array[j][i];
array[j][i] = temp;
}
}
}
```
外层循环控制每行,内层循环控制每列,因为 i 行 j 列和 j 行 i 列交换,所以内层循环从 i+1 开始。交换时用temp来暂存当前位置的值。
完整代码如下:
```c
#include
#define ROWS 3
#define COLS 4
输出结果:
```
original:
1 2 3 4
5 6 7 8
9 10 11 12
发布者:admin,转转请注明出处:http://www.yc00.com/web/1709506324a1632086.html
评论列表(0条)