#include<stdio.h>
typedef char VertextType;
typedef int EdgeType;
#define MAXVEX 100
#define INFINITY 65535;
typedef struct {
VertextType vexs[MAXVEX];
EdgeType arc[MAXVEX][MAXVEX];
int numVertexes, numEdges;
}MGraph;
void CreateMGraph(MGraph * G) {
int i, j, k, w;
printf("输入顶点数和边数:\n");
scanf_s("%d,%d", &G->numVertexes, &G->numEdges);
for (i = 0; i < G->numVertexes; i++)
scanf_s(&G->vexs[i]);
for (i = 0; i < G->numVertexes; i++)
for (j = 0; j < G->numVertexes; j++)
G->arc[i][j] = INFINITY;
for (k = 0; k < G->numEdges; k++) {
printf("输入变(vi,vj)上的下标i,下表j和权w:\n");
scanf_s("%d,%d,%d", &i, &j, &w);
G->arc[i][j] = w;
G->arc[j][i] = G->arc[i][j];
};
}
int main() {
MGraph G;
MGraph* L; L = &G;
CreateMGraph(L);
for (int i = 0; i < L->numVertexes; i++)
for (int j = 0; j < L->numVertexes; j++)
printf("%d", L->arc[i][j]);
return 0;
}
#define INFINITY 65535; ---- #define后面不需要分号
scanf_s(&G->vexs[i]);-------scanf_s怎么会只有一个参数呢......即使这一个参数也不对啊。为何顶点数用char类型呢?
如果是char,那么逐个输入的话,应该是 scanf_s("%c",&G->vexs[i],1);
第26行 }; ,这里多了 ';' 。