史天亮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日

悬赏问题

  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入