目录
【问题描述】
对称矩阵(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
代码
#include<iostream>
#include<iomanip>
#define N 5
using namespace std;
int main()
{
int n,i,j;
cin>>n;
if(n<2||n>25)
n=N;
int a[n][n];
for(i=0;i<n;i++)
{
a[i][i]=1; //主对角线上元素都为1
for(j=i+1;j<n;j++)
{
a[i][j]=a[i][j-1]+1; //以主对角线为切入 其后依次加一
}
}
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
{
a[i][j]=a[j][i]; //对称矩阵的性质
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<setw(3)<<a[i][j];
cout<<endl;
}
return 0;
}
运行结果