注册 登录
编程论坛 数据结构与算法

建立关于素数的邻接矩阵

营养书 发布于 2011-05-28 21:55, 351 次点击
输出结果不对!!!例如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);
}
1 回复
#2
寒风中的细雨2011-05-30 21:00
运行了 下 结合运行结果 和你所提供的信息还是不明白 程序的意思到底是什么
1