问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言 求大神帮忙改一下错误 不知道怎么改

发布网友 发布时间:2022-05-10 18:49

我来回答

2个回答

热心网友 时间:2023-10-22 18:59

你用的编译器不支持引用传参。

建议参数都改成指针,函数里都换成指针方式。

我给你改了一下。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_VERTEX_NUM 20
typedef int Arc_Type;
typedef char VerTex_Type[5];
typedef enum
{
    DG, DN, UDG, UDN
} Graph_Kind;
typedef struct ArcCell
{
    Arc_Type adj;
    //Info_Type *info;
} AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

typedef struct
{
    VerTex_Type vexs[MAX_VERTEX_NUM];
    AdjMatrix    arcs;
    int vertex_num;
    int arc_num;
    Graph_Kind kind;
} MGraph;

void Init_MGraph( MGraph *G )
{
    printf("输入图的定点数:");
    scanf("%d", &G->vertex_num );
    printf("输入图的边数:");
    scanf("%d", &G->arc_num );
    printf("输入图的类型(有向图:1   无向图:2 ):");
    scanf("%d", &G->kind);
    int i, j;
    printf("输入节点向量(定点之间用空格隔开):");
    for( i=0; i<G->vertex_num; ++i )
        scanf("%s", G->vexs[i] );

    for( i=0; i<G->vertex_num; ++i )
        for( j=0; j<G->vertex_num; ++j )
            G->arcs[i][j].adj = 0;
}
int Get_Vertex_Location( MGraph *G, VerTex_Type V )
{
    int i;
    for( i=0; i<G->vertex_num; ++i )
        if( strcmp( V, G->vexs[i] ) == 0 )
            return i;
    exit(0);
}
void Create_MGraph( MGraph *G )
{
    Init_MGraph( G );
    int i, v1_site, v2_site;
    VerTex_Type v1, v2;

    printf("输入与弧相关联的顶点(形如v1 - v2):\n");
    for( i=0; i<G->arc_num; ++i )
    {
        scanf("%s %*s %s", v1, v2 );
        v1_site = Get_Vertex_Location( G, v1 );
        v2_site = Get_Vertex_Location( G, v2 );
        switch( G->kind )
        {
        case 1:
            G->arcs[v1_site][v2_site].adj = 1;
            break;
        case 2:
            G->arcs[v1_site][v2_site].adj = G->arcs[v2_site][v1_site].adj = 1;
            break;

        default:
            exit(0);
        }
    }
}
void Print_Matrix( MGraph *G )//邻接矩阵的输出
{
    int i, j;
    printf("图的邻接矩阵为:\n");
    for( i=0; i<G->vertex_num; ++i )
    {
        for( j=0; j<G->vertex_num; ++j )
            printf(" %d", G->arcs[i][j].adj );
        printf("\n");
    }
}
int main()
{
    MGraph G;
    Create_MGraph( &G );
    Print_Matrix( &G );
    return 0;
}

热心网友 时间:2023-10-22 19:00

楼主用的,是什么编译软件?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
黄山门户网主要栏目 壹家居品牌简介 湖南乐享生活家居有限公司一站式毛坯房解决方案 服务器出租 电脑上的时间日期不同步怎么办 台式电脑时间不同步怎么解决? 关于清明节的小学作文400字 微信怎么查询自己名下的微信 如何查看微信实名认证了几个账号 轿车120时速撞击力有多大? C语言结构体定义二维数组? typedef的问题 C语言多读入前面一个回车是为何? void bfsMatrix(adjmatrix GA,bool *&visited,int i,int n) 数据结构中 typedef struct { } AdjMatrix[10][10]; AdjM 建立一个带权有向图的过程并决定是本顶点是弧头或尾。C++结构体或一些简单类来实现。图形界面完成加分 origin如何移动图形,图形放大以后需要移动,命令以及快捷键在哪里啊 建立邻接矩阵实参数组加引用出错,why啊???代码如下 我是一棵西瓜角色日记 数据结构c语言版问题!!! typedef struct ArcCell{ VRTy 日记我爱故乡的西瓜60字 typedef int Adjmatrix[Maxvnum][Maxvnum];是什么意思 手机照片误删怎么还原 日记大全100个字用西瓜两个字来写一个日记怎么写 偏执型精神分裂症几级 origin4窗格图怎么单独移动 偏执型精神病的典型症状是什么? 偏执型精神病有哪些常见的类型 偏执型精神病的症状有哪些 偏执型精神病的症状是什么 实现prim算法或kruscal算法中的一种最小生成树算法 c++ primer 不明白的地方?在线等。 德国的支柱产业或拳头产业是什么 为什么发达国家第三产业比重很高 德国的主要工业是什么 2006年各国三大产业所占比重 发达国家三大产业在GDP的比重是:三,二,一,请问这里的“三、二、一”是什么意思? 在*、经济、文化、旅游4个方面比较英国、法国、德国、美国的差异? 历年欧盟三大产业比重 正月十五元宵节《卖汤圆》欢欢喜喜过元宵 祝您节日快乐圆*满 如何做出好吃美味的山药豆? 卖汤圆 是哪个省份的 卖汤圆是不是描述春节的 粉丝拌紫菜 急问~~紫菜可以凉拌吃吗?怎么做!? 在淘宝上买了百度云一天会员的账号 但是不小心照片自动备份了怎么办? 买了一个共享百度网盘账号,照片等重要信息被备份了,怎么办? 《年轻》朗诵背景音乐 一百毫升的水是多少 从淘宝卖家的百度网盘保存了视频到自己的百度网盘里,时间长了,如果卖家更换了提取码,视频是不是就不能