将一个3×3的矩阵转置,用一个函数实现。(用指针方法编写程序) 主函数中用scanf函数输入一下矩阵元素: 1 3 5 7 9 11 13 15 19 将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。
时间: 2024-01-21 10:19:41 浏览: 76
以下是用指针方法编写的程序:
```c
#include <stdio.h>
void transpose(int *ptr) {
int temp;
for(int i=0;i<3;i++) {
for(int j=i+1;j<3;j++) {
temp = *(ptr+i*3+j);
*(ptr+i*3+j) = *(ptr+j*3+i);
*(ptr+j*3+i) = temp;
}
}
}
int main() {
int arr[3][3];
for(int i=0;i<3;i++) {
for(int j=0;j<3;j++) {
scanf("%d", &arr[i][j]);
}
}
transpose(&arr[0][0]);
printf("Transposed matrix:\n");
for(int i=0;i<3;i++) {
for(int j=0;j<3;j++) {
printf("%d\t", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
程序中,`transpose` 函数用于实现矩阵转置。该函数接受一个指向数组首元素的指针作为参数,通过指针访问数组中的元素来进行转置操作。
在主函数中,首先使用 `scanf` 函数输入矩阵元素,然后调用 `transpose` 函数实现转置。最后再输出已转置的矩阵。
运行程序后,输入矩阵元素,即可得到转置后的矩阵。
阅读全文