(1)编写函数Input,实现输入N*N个整数存入二维数组a; (2)编写函数Output,实现以矩阵形式输出二维数组a; (3)编写函数Change,实现对二维数组a的转置; (4)编写主函数main(内容如下),调用上述函数,输入9个整数存入3*3矩阵,输出该矩阵的转置。 int main() { int a[N][N]; Input(a); printf("转置前:\n"); Output(a); Change(a); printf("转置后:\n"); Output(a); }
时间: 2023-12-10 22:38:39 浏览: 127
函数:int **array2(int **arr,int n,int m) , C++ 输入二维数组 ,返回值二维数组
5星 · 资源好评率100%
以下是代码实现:
```c
#include <stdio.h>
#define N 3
// 输入N*N个整数存入二维数组a
void Input(int a[][N]) {
printf("请输入%d*%d个整数:\n", N, N);
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &a[i][j]);
}
}
}
// 以矩阵形式输出二维数组a
void Output(int a[][N]) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d\t", a[i][j]);
}
printf("\n");
}
}
// 对二维数组a的转置
void Change(int a[][N]) {
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
int temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
}
int main() {
int a[N][N];
Input(a);
printf("转置前:\n");
Output(a);
Change(a);
printf("转置后:\n");
Output(a);
return 0;
}
```
该程序首先调用 `Input` 函数输入9个整数存入3*3矩阵,然后调用 `Output` 函数以矩阵形式输出该矩阵。接着调用 `Change` 函数对该矩阵进行转置,最后再次调用 `Output` 函数以矩阵形式输出转置后的矩阵。
转置操作实现方式:对于矩阵中的每对元素 a[i][j] 和 a[j][i],交换它们的值即可。需要注意的是,只需对矩阵的一半进行操作即可,否则会将已经交换过的元素再次交换。
阅读全文