将一个3x3的整型二维数组转置,用一函数实现之,在主函数中用scanf函数输入数组元素
(1)将数组0行0列元素的地址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后在主函数中输出已转置的二维数组。(1)将数组0行的地址作为函数实参,在执行函数的...
(1) 将数组0行0列元素的地址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后在主函数中输出已转置的二维数组。
(1) 将数组0行的地址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后在主函数中输出已转置的二维数组。 展开
(1) 将数组0行的地址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后在主函数中输出已转置的二维数组。 展开
1个回答
展开全部
#include <stdio.h>
const int N = 3;
void Transpose(int *a,int n) {
int i,j,t;
for(i = 0; i < n - 1; ++i) {
for(j = i + 1; j < n; ++j) {
t = *(a + n * i + j);
*(a + n * i + j) = *(a + n * j + i);
*(a + n * j + i) = t;
}
}
}
void Show(int a[][N]) {
int i,j;
for(i = 0; i < N; ++i) {
for(j = 0; j < N; ++j)
printf("%d ",a[i][j]);
printf("\n");
}
}
int main() {
int a[N][N] = {1,2,3,4,5,6,7,8,9};
printf("原始矩阵:\n");
Show(a);
Transpose(&a[0][0],N);
printf("转置后:\n");
Show(a);
Transpose(a[0],N);
printf("再转置后:\n");
Show(a);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询