题目:编写一个函数,将main函数输入的3×3矩阵转置,在main函数中输出转置的结果。
思路:
- 用户输入一个3x3的整数矩阵。
- 使用两层嵌套循环,遍历矩阵元素。
- 在每一次迭代中,通过指针操作交换矩阵元素,实现矩阵的转置。
- 输出转置后的矩阵元素。
代码:
void main()
{
int a[3][3], i, j, t;
printf("输入矩阵\n");
for (i = 0; i < 3; i++)
scanf("%d %d %d", &a[i][0], &a[i][1], &a[i][2]);
for (i = 0; i < 3; i++)
for (j = i; j < 3; j++)
{
t = *(*(a + i) + j);//数组a[i][j]= a[j][i];
*(*(a + i) + j) = *(*(a + j) + i);
*(*(a + j) + i) = t;
}
printf("转置后\n");
for (i = 0; i < 3; i++)
printf("%d %d %d\n", a[i][0], a[i][1], a[i][2]);
}
-
主函数 (
main
):- 定义了一个3x3的整数矩阵
a
。 - 使用嵌套循环输入用户提供的3x3矩阵的元素。
- 定义了一个3x3的整数矩阵
-
矩阵转置操作:
- 使用两层嵌套循环遍历矩阵,其中
i
控制行数,j
控制列数。 - 在每一次迭代中,通过指针操作
*(*(a + i) + j)
和*(*(a + j) + i)
交换矩阵元素。 - 这样,就实现了矩阵的转置。
- 使用两层嵌套循环遍历矩阵,其中
-
输出转置后的矩阵:
- 输出转置后的矩阵元素。