建立关于素数的邻接矩阵
输出结果不对!!!例如2+5应该是素数,应该输出1,但是输出的还是0.请帮我看看、、、
#include <math.h>
#include <stdio.h>
#define INFINITY IONT_MAX;
typedef int VRType;
typedef struct ArcCell
{
VRType adj;
}ArcCell,AdjMatrix[100][100];
typedef struct
{
AdjMatrix arcs;
int vexnum,arcnum;
}MGraph;
void Create(MGraph &G)
{
int v,i,j,t;
int sum=0;
int flag;
printf("请输入顶点个数:");
scanf("%d",&v);
G.vexnum=v;
for(i=0;i<=G.vexnum;i++)
{
for(j=0;j<=G.vexnum;j++)
{
G.arcs[i][j].adj=0;
}
}
for(i=0;i<1;i++)
{
for(j=1;j<=G.vexnum;j++)
{
G.arcs[i][j].adj=j;
}
}
for(j=0;j<1;j++)
{
for(i=1;i<=G.vexnum;i++)
{
G.arcs[i][j].adj=i;
}
}
for(i=1;i<=G.vexnum;i++)
{
flag=0;
for(j=1;j<=G.vexnum;j++)
{
if(i==j)
G.arcs[i][j].adj=0;
else
{
sum=i+j;
for(t=2;t<=sqrt(sum);t++)
{
if(sum%t==0)
{flag=1;break;}
}
if(flag==0)
{ G.arcs[j][i].adj=G.arcs[i][j].adj=1;
}
}
}
}
printf("关系矩阵为:\n\n");
for(i=0;i<=G.vexnum;i++)
{
for(j=0;j<=G.vexnum;j++)
{
if(i==0&&j==0)
{
printf(" ");
}
else
printf("%d ",G.arcs[i][j].adj);
}
printf("\n\n");
}
}
void main()
{
MGraph T;
Create(T);
}