2024-10-18 05:42:14
在原二维数组上进行修改的C语言代码和运行结果如下:
注意函数的输入参数为二维数组时,必须显示地标明数组的列数,而行数可以省略;
转置时要遍历数组的所有下三角元素(满足j<i),再交换a[i][j]和a[j][i]即可
如果帮到你,望采纳~
附源码:
#include <stdio.h>
#define M 3
#define N 3
void transpose(int a[][N]) { // 注意输入二维数组时列数必须显示给出
int i, j, t;
for (i = 0; i < M; i++) {
for (j = 0; j < i; j++) { // 遍历所有下三角元素
t = a[i][j];
a[i][j] = a[j][i];
a[j][i] = t; // 交换a[i][j]和a[j][i]
}
}
}
int main() {
int i, j, a[M][N];
for (i = 0; i < M; i++)
for (j = 0; j < N; j++)
scanf("%d", &a[i][j]); // 输入二维数组每个元素
transpose(a);
printf("转置后:\n");
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}
2024-10-18 07:03:29