领接矩阵作图的代码,不造错在哪了,真心求助呀
#include <stdio.h>#include <stdlib.h>
#define MAXVEX 100 // 最大顶点数
#define INFINITY 65535 // 用65535来代表无穷大
typedef struct
{
char vexs; // 顶点表
int arc; // 邻接矩阵
int numVertexes, numEdges; // 图中当前的顶点数和边数
} MGraph;
// 建立无向网图的邻接矩阵
void CreateMGraph(MGraph *G)
{
int i, j, k, w;
printf("请输入顶点数和边数:\n");
scanf("%d %d", &G->numVertexes, &G->numEdges);
for( i=0; i < G->numVertexes; i++ )
{
scanf("%c", &G->vexs);
}
for( i=0; i < G->numVertexes; i++ )
{
for( j=0; j < G->numVertexes; j++ )
{
G->arc = INFINITY; // 邻接矩阵初始化
}
}
for( k=0; k < G->numEdges; k++ )
{
printf("请输入边(Vi,Vj)上的下标i,下标j和对应的权w:\n"); // 这只是例子,提高用户体验需要进行改善
scanf("%d %d %d", &i, &j, &w);
G->arc = w;
G->arc = G->arc; // 是无向网图,对称矩阵
}
}
int main()
{
MGraph *T ;
CreateMGraph(T) ;
return0 ;
} Dev C++ 编译通过之后,运行到输入了顶点和边长之后就出错了。。 是不是停止工作?还是什么错误? 无符号整形 发表于 2016-9-19 19:45
是不是停止工作?还是什么错误?
对的,输完数就错啦。。中止工作了就 MGraph *T = (MGraph *)malloc(sizeof(MGraph)) ;
写不进去是因为没分配空间 ,所以导致出错。
使用结构体,另外,初始化也是先占有空间的一种吧。。酱紫就对啦 赞一个
页:
[1]