943339665 发表于 2016-9-19 19:14:09

领接矩阵作图的代码,不造错在哪了,真心求助呀

#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 ;
}

943339665 发表于 2016-9-19 19:21:46

Dev C++ 编译通过之后,运行到输入了顶点和边长之后就出错了。。

无符号整形 发表于 2016-9-19 19:45:38

是不是停止工作?还是什么错误?

943339665 发表于 2016-9-19 22:47:14

无符号整形 发表于 2016-9-19 19:45
是不是停止工作?还是什么错误?

对的,输完数就错啦。。中止工作了就

943339665 发表于 2016-9-20 12:22:41

MGraph *T = (MGraph *)malloc(sizeof(MGraph)) ;
写不进去是因为没分配空间 ,所以导致出错。
使用结构体,另外,初始化也是先占有空间的一种吧。。酱紫就对啦

薇薇 发表于 2016-10-9 21:28:49

赞一个
页: [1]
查看完整版本: 领接矩阵作图的代码,不造错在哪了,真心求助呀