不知道怎么将涉及封控城市的路径的权值变成maxint
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define VertexMax 50 //最大顶点数为50
#define MaxInt 65535 //表示最大整数,表示 ∞
typedef char VertexType; //每个顶点数据类型为字符型
typedef char yiType;
typedef char shouType;
typedef char faType;
typedef struct
{
VertexType Vertex[VertexMax];//存放顶点元素的一维数组
yiType yi[VertexMax];
shouType shou[VertexMax];
faType fa[VertexMax];
int AdjMatrix[VertexMax][VertexMax];//邻接矩阵二维数组
int vexnum,arcnum,yinum;//图的顶点数和边数和疫情管控城市
}MGraph;
int LocateVex(MGraph *G,VertexType v)//查找元素v在一维数组 Vertex[] 中的下标,并返回下标
{
int i;
for(i=0;i<G->vexnum;i++)
{
if(v==G->Vertex[i])
{
return i;
}
}
}
void CreateDN(MGraph *G)
{
int i,j,z;
//1.输入顶点数和边数
printf("输入城市顶点个数和边数:\n");
scanf("%d %d",&G->vexnum,&G->arcnum);
//2.输入顶点元素
printf("输入城市顶点元素(无需空格隔开):");
scanf("%s",G->Vertex);
printf("\n");
printf("请输入收货城市的定点元素:");
scanf("%s",G->shou);
printf("\n");
printf("请输入发货城市的定点元素:");
scanf("%s",G->fa);
printf("\n");
printf("请输入受疫情管控城市的数目:");
scanf("%d",&G->yinum);
printf("\n");
yiType yi[VertexMax];
yiType a[VertexMax];
printf("请分别输入受疫情管控城市的定点元素:");
scanf("%d",&G->yi);
printf("\n");
//3.矩阵初始化
for(i=0;i<G->vexnum;i++)
for(j=0;j<G->vexnum;j++)
{
G->AdjMatrix[i][j]=MaxInt;
}
//4.构建邻接矩阵
int n,m;
VertexType v1,v2;
int w;//v1->v2的权值
printf("输入路径及路径长度:\n");
for(i=0;i<G->arcnum;i++)
{
scanf(" %c %c %d",&v1,&v2,&w);
n=LocateVex(G,v1); //获取v1所对应的在Vertex数组中的坐标
m=LocateVex(G,v2); //获取v2所对应的在Vertex数组中的坐标
G->AdjMatrix[n][m]=w;
}
for(i=1;i<=G->yinum;i++){
a[i-1]=LocateVex(G,G->yi[i-1]);
}
for(i=0;i<G->yinum;i++){
for(j=0;j<G->vexnum;j++){
G->AdjMatrix[a[i]][j]=MaxInt;
}
}
for(i=0;i<G->yinum;i++){
for(j=0;j<G->vexnum;j++){
G->AdjMatrix[j][a[i]]=MaxInt;
}
}
}
运行时一直有问题
尝试写了些,没能解决
能够解决问题