用c语言1.矩阵转置。 题目内容: 用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。 程序运行结果示例1: Input n:3↙ Input 3*3 matrix: 1 2 3↙ 4 5 6↙ 7 8 9↙ The transposed matrix is: 1 4 7 2 5 8 3 6 9 程序运行结果示例2: Input n:2↙ Input 2*2 matrix: 1 2↙ 4 5↙ The transposed matrix is: 1 4 2 5 输入提示信息: 提示输入矩阵的阶数:"Input n:" 提示输入矩阵数据:"Input %d*%d matrix:\n" 输入格式: "%d" 输出提示信息:"The transposed matrix is:\n" 输出格式:"%4d"
时间: 2023-12-03 16:45:49 浏览: 174
以下是用C语言编写的矩阵转置程序:
```c
#include <stdio.h>
void transpose(int mat[][10], int n);
int main()
{
int n, mat[10][10], i, j;
printf("Input n:");
scanf("%d", &n);
printf("Input %d*%d matrix:\n", n, n);
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &mat[i][j]);
}
}
transpose(mat, n);
printf("The transposed matrix is:\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%4d", mat[i][j]);
}
printf("\n");
}
return 0;
}
void transpose(int mat[][10], int n)
{
int i, j, temp;
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
temp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = temp;
}
}
}
```
程序首先提示用户输入矩阵的阶数 `n`,然后通过两个嵌套循环依次读入矩阵元素。接着调用 `transpose` 函数对矩阵进行转置操作。最后输出转置后的矩阵。
`transpose` 函数接收一个二维数组 `mat` 和一个整数 `n`,表示转置 `n`×`n` 阶矩阵 `mat`。函数中使用两个嵌套循环对矩阵进行转置,即将第 `i` 行第 `j` 列的元素与第 `j` 行第 `i` 列的元素交换位置。由于矩阵是对称的,因此只需要对主对角线以上的元素进行交换操作即可。
程序中使用 `%4d` 格式化输出,保证每个元素的宽度为 4 个字符,使输出的矩阵更加美观。
阅读全文