jehuxjhxj 2021-12-08 22:11 采纳率: 0%
浏览 25
已结题

写入权限访问冲突的问题

问题遇到的现象和发生背景

本人在写无向图搜索的代码时遇到的问题

问题相关代码,请勿粘贴截图



#define MAX_VERTEX_NUMBER 20
#define FALSE 0
#define TRUE 1
#define INFINITY INT_MAX
typedef struct ArcCell
{
    int adj;
    int* info;
}ArcCell,AdjMatrix[MAX_VERTEX_NUMBER][MAX_VERTEX_NUMBER];
typedef struct
{
    int vexs[MAX_VERTEX_NUMBER];
    AdjMatrix arcs;
    int vexnum,arcnum;
}MGraph;
```void CreateMGraph(MGraph* G)
{
    if (G == NULL) exit(0);
    G->vexnum = 13;
    G->arcnum = 18;
#if 0
    for (int i = 0; i < MAX_VERTEX_NUMBER; i++)
    {
        for (int j = 0; j < MAX_VERTEX_NUMBER; i++)
        {
                G->arcs[i][j].adj = INFINITY;
                G->arcs[i][j].info = NULL;
        }
    }
#endif
    G->arcs[1][0].adj = 18; G->arcs[2][1].adj = 19; G->arcs[3][2].adj = 23;
    G->arcs[4][3].adj = 15; G->arcs[5][4].adj = 21; G->arcs[6][5].adj = 30;
    G->arcs[7][4].adj = 8; G->arcs[7][6].adj = 14; G->arcs[8][6].adj = 20;
    G->arcs[9][1].adj = 27; G->arcs[9][3].adj = 4; G->arcs[10][3].adj = 4;
    G->arcs[10][6].adj = 21; G->arcs[10][8].adj = 43; G->arcs[11][0].adj = 22;
    G->arcs[11][2].adj = 4; G->arcs[12][2].adj = 32; G->arcs[12][7].adj = 4;
    for (int i = 0; i < G->vexnum; i++)
    {
        for (int j = 0; j < i; j++)
        {
            G->arcs[j][i].adj = G->arcs[i][j].adj;
        }
    }
}
void ShortestPath_DIJ(MGraph* G, int start, int **path, int* dis)
{
    int final[13];
    int v=0;
#if 0
    for (; v < G->vexnum; ++v)
    {
        final[v] = FALSE;
        dis[v] = G->arcs[start][v].adj;
        for (int i = 0; i < G->vexnum; ++i) path[v][i] = FALSE;
        if (dis[v] < INFINITY)
        {
            path[v][start] = TRUE;
            path[v][v] = TRUE;
        }
    }
#endif
    v = 0;
    dis[start] = 0; final[start] = TRUE;
    for (int i = 1; i < G->vexnum; ++i)
    {
        int min = INFINITY;
        for (int j = 0; j < G->vexnum; ++j)
        {
            if (!final[j])
                if (dis[j] < min) 
                {
                    v = j;
                    min = dis[j];
                }
        }
        final[v] = TRUE;
        for (int j = 0; j < G->vexnum; ++j)
        {
            if (!final[j] && (min + G->arcs[v][j].adj < dis[j]))
            {
                dis[j] = min + G->arcs[v][j].adj;
                path[j] = path[v];
                path[j][j] = TRUE;
            }
        }
    }
}

```c


运行结果及报错内容

两个if和endif中间的部分都报错写入访问冲突

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-12-10 10:17
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 修改了问题 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法