(大一练习题) 按如下函数原型编程计算并输出n×n阶矩阵的转置矩阵。其中,n由用户从键盘输入。已知n值不超过10。 void Transpose(int *a, int n); void Swap(int *x, int *y); void InputMatrix(int *a, int n); void PrintMatrix(int *a, int n); 输入提示信息:"Input n:" 输入格式:"%d" 输入提示信息:"Input %d*%d matrix:\n" 输出提示信息:"The transposed matrix is:\n" 输出格式:"%d\t"
#include<stdio.h> #define N 10 void Swap(int *x, int *y); void Transpose(int *a, int n); void InputMatrix(int *a, int n); void PrintMatrix(int *a, int n); int main() { int s[N][N], n; printf("Input n:"); scanf("%d", &n); InputMatrix(*s, n); Transpose(*s, n); PrintMatrix(*s, n); return 0; } //交换两个整型数的值 void Swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } //计算n*n矩阵的转置矩阵 void Transpose(int *a, int n) { int i, j; for (i = 0; i < n; i++) { for (j = i; j < n; j++) { Swap(&a[i * n + j], &a[j * n + i]); } } } //输入n*n矩阵的值 void InputMatrix(int *a, int n) { int i, j; printf("Input %d*%d matrix:\n", n, n); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { scanf("%d", &a[i * n + j]); } } } //输出n*n矩阵的值 void PrintMatrix(int *a, int n) { int i, j; printf("The transposed matrix is:\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("%d\t", a[i * n + j]); } printf("\n"); } }