我們先看對(duì)稱矩陣的例圖:
?通過(guò)觀察對(duì)稱矩陣圖片我們可以得出以下結(jié)論:
1)對(duì)稱矩陣以主對(duì)角線為對(duì)稱軸,對(duì)應(yīng)位置的數(shù)字相等。也就是:aij=aji
2)如果一個(gè)矩陣是對(duì)稱矩陣,那么他的轉(zhuǎn)置矩陣等于他本身。
以上文對(duì)稱矩陣?yán)龍D為例進(jìn)行代碼編寫。
案例代碼如下:
#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;//如果對(duì)應(yīng)位置的數(shù)字相等,a就賦值為1
}
else{
a=0;//只要有一個(gè)對(duì)應(yīng)位置上的數(shù)字不等,a就賦值為0并結(jié)束循環(huán)
break;
}
}
}
if(a==1){//如果對(duì)應(yīng)位置上的數(shù)字都相等,a都是賦值為1,不會(huì)賦值為0
printf("是對(duì)稱的");
}
else{
printf("不是對(duì)稱的");
}
}
代碼運(yùn)行結(jié)果如下
?說(shuō)明:上面的案例代碼不具有普適性,我們可以把代碼封裝一下方便以后直接調(diào)用。
代碼如下
#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;//如果對(duì)應(yīng)位置的數(shù)字相等,a賦值為1
}
else{
a=0;//如果對(duì)應(yīng)位置的數(shù)字不相等,a賦值為0并結(jié)束循環(huán)
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);//調(diào)用子函數(shù)
printf("%d",res);//如果返回1,矩陣就是對(duì)稱的,返回0就不是對(duì)稱的
}
代碼運(yùn)行結(jié)果如下
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-721254.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-721254.html
到了這里,關(guān)于C語(yǔ)言判斷一個(gè)矩陣是不是對(duì)稱矩陣案例講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!