我们先看对称矩阵的例图:
通过观察对称矩阵图片我们可以得出以下结论:
1)对称矩阵以主对角线为对称轴,对应位置的数字相等。也就是:aij=aji
2)如果一个矩阵是对称矩阵,那么他的转置矩阵等于他本身。
以上文对称矩阵例图为例进行代码编写。
案例代码如下:
#include <stdio.h>
void main(){
int arr[5][5]={
{3,6,4,7,8},
{6,2,8,4,2},
{4,8,1,6,9},
{7,4,6,0,5},
{8,2,9,5,7}
};
int i,j,a=0;
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(arr[i][j]==arr[j][i]){
a=1;//如果对应位置的数字相等,a就赋值为1
}
else{
a=0;//只要有一个对应位置上的数字不等,a就赋值为0并结束循环
break;
}
}
}
if(a==1){//如果对应位置上的数字都相等,a都是赋值为1,不会赋值为0
printf("是对称的");
}
else{
printf("不是对称的");
}
}
代码运行结果如下
说明:上面的案例代码不具有普适性,我们可以把代码封装一下方便以后直接调用。
代码如下
#include <stdio.h>
int fun1(int arr[][5]){
int i,j,a=0;
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(arr[i][j]==arr[j][i]){
a=1;//如果对应位置的数字相等,a赋值为1
}
else{
a=0;//如果对应位置的数字不相等,a赋值为0并结束循环
break;
}
}
}
return a;//返回a的值
}
void main() {
int arr[5][5]={
{3,6,4,7,8},
{6,2,8,4,2},
{4,8,1,6,9},
{7,4,6,0,5},
{8,2,9,5,7}
};
int res=fun1(arr);//调用子函数
printf("%d",res);//如果返回1,矩阵就是对称的,返回0就不是对称的
}
代码运行结果如下
文章来源:https://www.toymoban.com/news/detail-721254.html
文章来源地址https://www.toymoban.com/news/detail-721254.html
到了这里,关于C语言判断一个矩阵是不是对称矩阵案例讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!