史天亮123 2022-12-09 19:36 采纳率: 75%
浏览 18
已结题

scanf输入不知道哪块有些问题

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

#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

#define MVNum 100
typedef char VerTexType;
typedef int ArcType;
typedef struct{
    VerTexType vexs[MVNum];
    ArcType arcs[MVNum] [MVNum];
    int vexnum,arcnum;
}AMGraph;

int LocateVex(AMGraph *G,VerTexType v){
    int i;
    for(i=0;i<G->vexnum;i++){
        if(G->vexs[i]==v)
            return i;
    }
    return -1;
}

int CreateUDN(AMGraph *G){
    int i,j,k;
    VerTexType v1,v2;
    printf("输入总点数:");
    scanf("%d",&G->vexnum);
    printf("\n输入总边数:");
    scanf("%d",&G->arcnum);
    printf("\n输入顶点信息:");
    scanf("%s",G->vexs);
    
    for(i=0;i<G->vexnum;i++){
        for(j=0;j<G->vexnum;j++)
            G->arcs[i][j]=0;
    }
    for(k=0;k<G->arcnum;k++){
        printf("\n输入一条边依附的两个顶点:");
        scanf("%c%c",&v1,&v2);
        //printf("\n%c%c\n",v1,v2);
        i=LocateVex(G,v1);
        j=LocateVex(G,v2);
        G->arcs[i][j]=1;
    }
    printf("OK"); 
}




int main(int argc, char *argv[]) {
    AMGraph G;
    CreateUDN(&G);
    return 0;

}




运行结果及详细报错内容

img

help me@qzjhjxj

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-12-09 20:09
    关注

    scanf("%c%c",&v1,&v2);之前,加个getchar(),接收前面scanf输入时的换行符。而且在两个%c之间加个空格,因为你输入时两个字符之间也是加空格的,必须一致

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 创建了问题 12月9日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改