(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)
目录
题目:
利用指针实现3*4矩置阵的转置
代码思路:
我们定义了一个名为`turn`的函数,该函数接受一个指向二维数组的指针,以及矩阵的行数和列数作为参数。在函数中,我们使用两个嵌套的循环来遍历矩阵,将每个元素与其对应的转置元素进行交换。最后,我们在`main`函数中调用`turn`函数,并打印出转置后的矩阵。
在函数中,arr表示首元素地址,*(*(arr+i)+j)表示第i行第j列元素的值
代码表示:
void turn(int arr[3][4], int rows, int cols) { int temp; for (int i = 0; i < rows; i++) { for (int j=i+1; j < cols; j++) { temp = *(*(arr + i) + j); *(*(arr + i) + j) = *(*(arr + j) + i); *(*(arr + j) + i) = temp; } } } int main() { int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; printf("转换前\n"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("%4d ", arr[i][j]); } printf("\n"); } printf("转换后\n"); turn(arr, 3, 4); for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { printf("%4d ", arr[i][j]); } printf("\n"); } return 0; }