问题 : C语言实习题六——4.矩阵转置函数设计
时间限制: 1 Sec 内存限制: 128 MB
提交: 5280 解决: 2036
[提交][状态][讨论版]
题目描述
设计一个函数,将任意的n阶方型矩阵转置,并在主函数中调用此函数实现矩阵转置后输出。
输入
的矩阵
输出
转置后的的矩阵
样例输入
3 1 2 3 4 5 6 7 8 9
样例输出
1 4 7 2 5 8 3 6 9
提示
#include <stdio.h>
#include <stdlib.h>
void matrixTranspose(int** arr, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
if (i == j) {
continue;
}
else
{
int tmp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = tmp;
}
}
}
}
int main() {
int n = 0;
scanf("%d", &n);
int** arr = (int**)malloc(n * sizeof(int*));
for (int i = 0; i < n; i++) {
arr[i] = (int*)malloc(n * sizeof(int));
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
matrixTranspose(arr, n);
for (int i = 0; i < n; i++) {
int j = 0;
for (; j < n-1; j++) {
printf("%d ", arr[i][j]);
}
printf("%d\n", arr[i][j]);
}
printf("\n");
return 0;
}