C语言判断是矩阵是否为对称矩阵 高手帮下忙 看看那里有问题。。谢谢谢谢啦

#include"stdio.h"
void main()
{ int q=0;
int i,j,b[3][3];
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("please input a number:");
scanf("%4d",&b[3][3]);
}
}
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
if(i<j){
if(b[i][j]==b[j][i])
q=1;
}else
q=0;
}
}
if(q==1)
printf("对称\n");
else
printf("不对称\n");

}

第1个回答  2009-04-26
#include"stdio.h"
void main()
{
int q=0;
int i,j,b[3][3];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("please input a number:");
scanf("%4d",&b[i][j]); //出错1,不应为&b[3][3]
}
}
for(i=0;i<3;i++)//逻辑出错,应该是只要有一个b[i][j]!=b[j][i]就视为不是对称矩阵
{
for(j=0;j<3;j++)
{
if(b[i][j]==b[j][i])
{
q=1;
}
else
{
q=0;
break;
}
}
if(0 == q)
{
break;
}
}
if(q==1)
{
printf("对称\n");
}
else
{
printf("不对称\n");
}

}
第2个回答  2009-04-25
2个问题 这一句scanf("%4d",&b[3][3]);
判断的那里也有问题
if(i<j)
{
if(b[i][j]==b[j][i])
q=1;
}else
q=0;
这个if-else明显有问题

试试这个
#include"stdio.h"
void main()
{ int q=0;
int i,j,b[3][3]; printf("please input a number:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{

scanf("%4d",&b[i][j]);
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i<j)
{
if(b[i][j]==b[j][i])
q=1;
else
q=0;
}
}
}
if(q==1)
printf("对称\n");
else
printf("不对称\n");
}本回答被提问者和网友采纳
相似回答