用C语言写:【问题描述】 对称矩阵(Symmetric Matrices)是指以主对角线为对称轴,各元素对应相等的矩阵。 在线性代数中,对称矩阵是一个方形矩阵,其转置矩阵和自身相等。主对角线也称正对角线,指从矩阵左上角到右下角的斜线。输入一个正整数,范围2~25 。输出其对称矩阵。如果输入超界,则默认输出5阶。 【输入形式】 输入一个整数n(要求范围2~25,如果超出这个范围,则默认输入5) 【输出形式】 输出n阶对称矩阵。由1~n整数构成。每位元素占3位宽度。 【样例输入】 5 【样例输出】 1 2 3 4 5 2 1 2 3 4 3 2 1 2 3 4 3 2 1 2 5 4 3 2 1
时间: 2024-04-01 18:33:28 浏览: 149
好的,下面是一个用 C 语言实现输出对称矩阵的程序:
```c
#include <stdio.h>
int main() {
int n;
// 读入矩阵阶数 n
printf("Enter the order of the matrix (2 <= n <= 25): ");
scanf("%d", &n);
// 确保 n 在合法范围内
if (n < 2 || n > 25) {
n = 5;
}
// 构造对称矩阵
int matrix[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) {
matrix[i][j] = i + 1;
} else if (i > j) {
matrix[i][j] = matrix[j][i];
} else {
matrix[i][j] = j + 1;
}
}
}
// 输出对称矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%3d", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
该程序中首先读入矩阵阶数 `n`,并确保 `n` 在合法范围内。然后,程序构造对称矩阵 `matrix`,通过循环遍历每个元素,判断其在矩阵中的位置,然后填充相应的值。最后,按照格式要求输出对称矩阵。
需要注意的是,程序中使用了 `%3d` 格式符来按照要求输出矩阵元素,其中数字 3 表示输出宽度为 3。
阅读全文