稀疏矩阵验证矩阵是否有对称性
#include<stdio.h>#include<string.h>
#include<stdlib.h>
#define MAX 1000
typedef struct
{
int row,col;
int value;
}Triple;
typedef struct
{
Triple data[MAX];
int rows,cols,nums;
}T;
T *Creat()
{
T*A;
int i;
A=(T*)malloc(sizeof(T));
printf("请输入元素总个数:\n");
scanf("%d",&(A->nums));
printf("请输入总行数,总列数:\n");
scanf("%d,%d",&A->rows,&A->cols);
printf("请输入行,列,值\n");
for(i=0;i<A->nums;i++)
{
scanf("%d,%d,%d",&A->data[i].row,&A->data[i].col,&A->data[0].value);
//printf("\n");
}
return A;
}
void Issymmetric(T*A)
{
int i,j; //循环控制变量
int a,b,x,c,d,y;
int count=0; //计数变量 判断是不是对称矩阵
for(i=0;i<A->nums;i++)
{
a=A->data[i].row;
printf("A:%d\n",a);
b=A->data[i].col;
printf("B:%d\n",b);
x=A->data[i].value;
printf("%d\n",x);
for(j=0;j<A->nums;j++)
{
c=A->data[j].row;
printf("C:%d\n",c);
d=A->data[j].col;
printf("D:%d\n",d);
y=A->data[j].value; // 这里之后就出现问题
printf("%d\n",y);
if(((a==d)&&(b==c)&&(x==y)))
count++;
printf("%d\n",count);
}
}
printf("\n\n");
printf("%d\n",count);
if(count==(A->nums))
printf("YES\n");
else
printf("NO\n");
}
void main()
{
T *B;
B=Creat();
Issymmetric(B);
}