是wyy 2021-12-13 01:27 采纳率: 66.7%
浏览 60
已结题

简易城市交通网城市名称的添加结果总是错的,求帮助

对城市交通网的操作,添加城市名称一直有误,希望帮忙看看错在哪里

void Add(MGraph *G)  
{
    int i,j;
    NData vi;
    strcpy(G->vexs[G->n],vi);
    G->n++;
    printf("添加后共有%d个城市,%d条路线\n",G->n,G->e);
    for(i=0;i<G->n;i++)
    {
        printf("%-5s",G->vexs[i]);
    }
    printf("%5s",G->vexs[i]);
    printf("\n");
    for(i=0;i<G->n;i++)
    {
        G->edges[i][G->n-1]=max;
        G->edges[G->n-1][i]=max;
    }
    for(i=0;i<G->n;i++)
        for(j=i;j<G->n;j++)
            if(G->edges[i][j]!=max)
                printf("%-10s%5s%10d\n",G->vexs[i],G->vexs[j],G->edges[i][j]);
    printf("交通图的邻接矩阵为:\n");
    for(i=0;i<G->n;i++)
    {
        for(j=0;j<G->n;j++)
        printf("%-6d",G->edges[i][j]);
        printf("\n");
    }
}

void AddCity(MGraph *G)        
{
    int i,j;
    NData vi;
    printf("请输入您要添加的城市:");
    scanf("%s",&vi);
    for(i=0;i<G->n;i++)
    {
        if(strcmp(vi,G->vexs[i])==0)
        {
            printf("您要添加的城市已存在,无法添加\n");
            break;
        }
    }
    if(i==G->n)
    Add(G);
}    

如果程序运行结果是对的,广州的后面应该是长沙

img

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-12-13 08:36
    关注

    第37行, scanf("%s",&vi); 多了 ‘&’ 符,应修改为: scanf("%s",vi);

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月13日
  • 修改了问题 12月13日
  • 修改了问题 12月13日
  • 创建了问题 12月13日

悬赏问题

  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本
  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列
  • ¥15 SENT协议中相关问题咨询
  • ¥15 URL地址href跳转问题
  • ¥15 mysql数据库备份恢复