#include<stdio.h> #define MaxVertexNum typedef char VertexType; typedef int EdgeType; typedef struct { VertexType vexs[MaxVertexNum];//顶点表 EdgeType edges[MaxVertexNum][MaxVertexNum];//边表 int n,e; //顶点和边数 }MGrape;//MGrape是以邻接矩阵存储的图类型 void CreateMGrape(MGrape*G) { int i,j,k; printf("请输入顶点数和边数(输入格式为:顶点数,边数)\n"); scanf("%d,%d",&(G->n),&(G->e));//输入顶点数和边数 printf("请输入顶点信息(输入格式为:<回车>顶点号):\n"); for(i=0;i<G->n;i++) scanf("\n%c,&(G->vexs[i])"); for(i=0;i<G->n;i++) for(j=0;j<G->n;j++) G->edges[i][j]=0;//初始化邻接矩阵 printf("请输入每条边对应的两个顶点的序号(输入格式为:i,j)"); for(k=0;k<G->e,k++) { scanf("%d,%d",&i,&j); G->edges[i][j]=1;//此处若为G->edges[i][j]=1,则为无向图 } }有问题吗?
时间: 2023-11-27 21:51:22 浏览: 101
有几个小问题:
1. `#define MaxVertexNum` 后面没有定义具体的值,应该改为 `#define MaxVertexNum 100` 或者其他具体的数字。
2. 在输入顶点信息时,应该去掉引号,改为 `scanf("\n%c", &(G->vexs[i]));`。
3. `for(k=0;k<G->e,k++)` 应该改为 `for(k=0;k<G->e;k++)`,`,` 应该改为 `;`。
修改后的代码如下:
```c
#include<stdio.h>
#define MaxVertexNum 100
typedef char VertexType;
typedef int EdgeType;
typedef struct {
VertexType vexs[MaxVertexNum];//顶点表
EdgeType edges[MaxVertexNum][MaxVertexNum];//边表
int n,e; //顶点和边数
} MGrape;//MGrape是以邻接矩阵存储的图类型
void CreateMGrape(MGrape*G) {
int i,j,k;
printf("请输入顶点数和边数(输入格式为:顶点数,边数)\n");
scanf("%d,%d",&(G->n),&(G->e));//输入顶点数和边数
printf("请输入顶点信息(输入格式为:<回车>顶点号):\n");
for(i=0;i<G->n;i++)
scanf("\n%c", &(G->vexs[i]));
for(i=0;i<G->n;i++)
for(j=0;j<G->n;j++)
G->edges[i][j]=0;//初始化邻接矩阵
printf("请输入每条边对应的两个顶点的序号(输入格式为:i,j)");
for(k=0;k<G->e;k++)
{
scanf("%d,%d",&i,&j);
G->edges[i][j]=1;//此处若为G->edges[i][j]=1,则为无向图
}
}
```
阅读全文