(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)
目录
题目:
利用指针实现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;
}