C++ 解决最短路问题 主文件里的内容 o(□)o
#include<stdio.h>
#include<stdlib.h>
#define MVNum 100
#define Maxint 32767
typedef char VertexType;
typedef int Adjamatrix;
typedef enum {FALSE,TRUE} boolean;
typedef struct
{
VertexType vexs[MVNum];
Adjmatrix arcs[MVNum][MVNum];
}
MGraph;
int D1[MVNum],P1[MVNum];
int D[MVNum][MVNum],P[MVNum][MVNum];
#include"save.c"
#include"dijkstra.c"
#include"floyd.c"
void main()
{
MGraph G;
int n,e,v,w,k;
int xz=1;
printf("输入图中顶点个数和边数n,e:");
scanf("%d,%d,&n,&e");
CreateMGraph(&G,n,e);
while(xz!=0)
{
printf("******求城市之间最短路径****\n");
printf("============================\n");
printf("1、求一个城市到所有城市最短路径\n");
printf("2、求任意的两个城市之间最短路径\n");
printf("============================\n");
printf(" 请选择 1 或2 ,选择 0 退出\n");
scanf("%d",%xz);
if(xz==2)
{
Floyd(G,n);
printf("输入起点和终点,v,w:");
scanf("%d,%d,&v,&w");
k=P[v][w];
if(k==0)
printf("顶点 %d 到%d 无路径!\n",v,w);
else
{
printf("从顶点%d到%d的最短路径是:%d",v,w,v);
while(k!=w)
{
printf("-%d\n",k);
k=P[k][w];
}
printf("-%d\n",w);
printf(" 路径长度:%d\n",D[v][w]);
}
}
printf("结束求最短路径,再见!\n");
}
提示错误:05_.cpp
h:\105_\105_.cpp(11) : error C2146: syntax error : missing ';' before identifier 'arcs'
h:\105_\105_.cpp(11) : error C2501: 'Adjmatrix' : missing storage-class or type specifiers
h:\105_\105_.cpp(11) : error C2501: 'arcs' : missing storage-class or type spec
虾米啊这是,完全不知道怎么改啊!!!!!
[解决办法]
- C/C++ code
#include<stdio.h>#include<stdlib.h>#define MVNum 100#define Maxint 32767typedef char VertexType;typedef int Adjamatrix;typedef enum {FALSE,TRUE} boolean;typedef struct{ VertexType vexs[MVNum]; Adjamatrix arcs[MVNum][MVNum];//Adjmatrix -->Adjamatrix}MGraph;int D1[MVNum],P1[MVNum];int D[MVNum][MVNum],P[MVNum][MVNum];#include"save.c"#include"dijkstra.c"#include"floyd.c"void main(){ MGraph G; int n,e,v,w,k; int xz=1; printf("输入图中顶点个数和边数n,e:"); scanf("%d,%d,&n,&e"); CreateMGraph(&G,n,e); while(xz!=0) { printf("******求城市之间最短路径****\n"); printf("============================\n"); printf("1、求一个城市到所有城市最短路径\n"); printf("2、求任意的两个城市之间最短路径\n"); printf("============================\n"); printf(" 请选择 1 或2 ,选择 0 退出\n"); scanf("%d",&xz);//%-->& if(xz==2) { Floyd(G,n); printf("输入起点和终点,v,w:"); scanf("%d,%d,&v,&w"); k=P[v][w]; if(k==0) printf("顶点 %d 到%d 无路径!\n",v,w); else { printf("从顶点%d到%d的最短路径是:%d",v,w,v); while(k!=w) { printf("-%d\n",k); k=P[k][w]; } printf("-%d\n",w); printf(" 路径长度:%d\n",D[v][w]); } } printf("结束求最短路径,再见!\n"); }}