c语言实现由键盘输入,设计一个子函数,将任意n×n的矩阵转置,并在主函数中调用此函数将一个4×4的矩阵转置
时间: 2023-06-25 07:01:57 浏览: 92
以下是使用C语言实现将任意n×n的矩阵转置的代码:
```c
#include <stdio.h>
void transpose(int a[][100], int n) {
int i, j, temp;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
}
int main() {
int n, i, j;
int a[100][100];
printf("Enter the size of matrix: ");
scanf("%d", &n);
printf("Enter the elements of matrix: ");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
transpose(a, n);
printf("Transpose of matrix:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个程序中,我们首先定义了一个名为`transpose()`的函数,它接受一个二维数组和它的大小作为参数,并将该数组转置。转置的过程是通过交换每个元素的行和列来完成的。
接下来,在`main()`函数中,我们首先从用户那里获取矩阵的大小和元素。然后,我们调用`transpose()`函数将该矩阵转置,并在屏幕上打印转置后的矩阵。
现在,我们可以使用主函数调用该函数将一个4×4的矩阵转置,如下所示:
```c
#include <stdio.h>
void transpose(int a[][100], int n) {
int i, j, temp;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
}
int main() {
int n = 4, i, j;
int a[100][100] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
printf("Original matrix:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
transpose(a, n);
printf("Transpose of matrix:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个程序中,我们手动定义了一个4×4的矩阵,并在屏幕上打印出来。然后,我们调用`transpose()`函数将该矩阵转置,并在屏幕上打印转置后的矩阵。
阅读全文