问答文章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

我来回答

4个回答

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

你把第一个scanf()中的格式说明符改成%s试试看是不是你要的结果。
#include <stdio.h>
#include <iostream>
#define True 1
#define False 0
#define MAX 4
#define INFINITY 32768

int visited[MAX];

typedef int AdjType;
typedef char VertexData;

typedef struct ArcNode{
AdjType adj;
}ArcNode;

typedef struct{
VertexData vertex[MAX];
ArcNode arcs[MAX][MAX];
int vexnum,arcnum;
} AdjMatrix;

int LocateVertex(AdjMatrix *G,VertexData v)
{
int j=False,k;
for(k=0;k<G->vexnum;k++)
if(G->vertex[k]==v)
{
j=k;break;
}
return(j);
}

int CreateDN(AdjMatrix *G)
{
int i,j,k;
VertexData v1,v2;
printf("please input ArcNum&VexNum\n");
scanf("%d-%d",&G->arcnum,&G->vexnum);

printf("please input VexValue\n");
/*while(getchar()!='\n')
continue;*/这个循环你可以加上,主要是消除你输入数字以后按回车键的换行字符的。你这句加上就可以把%s改成%c。
for(i=0;i<G->vexnum;++i)
for(j=0;j<G->vexnum;++j)
G->arcs[i][j].adj=INFINITY;

for(i=0;i<G->vexnum;++i)
scanf("%s",&(G->vertex[i]));

for(i=0;i<G->vexnum;++i)
printf("%c",G->vertex[i]);
while(getchar()!='\n')
continue;

printf("please input arclink\n");
for(k=0;k<G->arcnum;++k)
{
scanf("%s,%s",&v1,&v2);
i=LocateVertex(G,v1);
j=LocateVertex(G,v2);
G->arcs[i][j].adj=1;
}
return True;
}

void TraverseGraph(AdjMatrix G)
{
int vi;
void DepthFirstSearch(AdjMatrix G,int v0);
for(vi=0;vi<G.vexnum;++vi)
visited[vi]=False;
for(vi=0;vi<G.vexnum;++vi)
if(!visited[vi])
DepthFirstSearch(G,vi);
}

void DepthFirstSearch(AdjMatrix G,int v0)
{

int vj;
void visit(AdjMatrix G,int v);
visit(G,v0);
visited[v0]=True;
for(vj=0;vj<G.vexnum;vj++)
if(!visited[vj]&&G.arcs[v0][vj].adj==1)
DepthFirstSearch(G,vj);
}

void visit(AdjMatrix G,int v)
{
printf("%c->",G.vertex[v]);
}

int main()
{
AdjMatrix G;
CreateDN(&G);
TraverseGraph(G);
system("pause");
return 0;
}

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

这是C语言的输入格式:scanf("%d-%d",&G->arcnum,&G->vexnum);
在运行输入中“-”占了一个字节(本来是b),其后字母顺延。。。

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

在最后面加这个试试
getchar();
getchar();

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

加上getchar();试试
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
易企秀如何分享链接给微信好友?-易企秀分享链接给微信好友的方法 华为荣耀3c系统辅助功能服务老是自动关闭,求解决方案。 我用一键清理忽... 华为荣耀3c手机双击唤醒屏幕不好用了怎么办? 荣耀手机刷机包从哪下 木地板为啥走过会响 瓷砖块要斜成几度角人踩上去不会烂 刚出生的婴儿肚子胀怎么办 新生儿涨肚子按摩图 刚生小宝宝胀气怎么办 白果怎么炒好吃 白果可以制作哪些美食 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窗格图怎么单独移动 偏执型精神病的典型症状是什么? 偏执型精神病有哪些常见的类型 偏执型精神病的症状有哪些 偏执型精神病的症状是什么 pos机打印纸如何分别信用卡还是借记卡可以 偏执性精神障碍怎么办啊? 如何看pos签购单是信用卡还是储蓄卡 typedef的问题 C语言结构体定义二维数组? C语言 求大神帮忙改一下错误 不知道怎么改 实现prim算法或kruscal算法中的一种最小生成树算法 c++ primer 不明白的地方?在线等。 德国的支柱产业或拳头产业是什么 为什么发达国家第三产业比重很高 德国的主要工业是什么 2006年各国三大产业所占比重 发达国家三大产业在GDP的比重是:三,二,一,请问这里的“三、二、一”是什么意思? 在*、经济、文化、旅游4个方面比较英国、法国、德国、美国的差异? 历年欧盟三大产业比重 正月十五元宵节《卖汤圆》欢欢喜喜过元宵 祝您节日快乐圆*满 如何做出好吃美味的山药豆? 卖汤圆 是哪个省份的 卖汤圆是不是描述春节的 粉丝拌紫菜 急问~~紫菜可以凉拌吃吗?怎么做!? 在淘宝上买了百度云一天会员的账号 但是不小心照片自动备份了怎么办? 买了一个共享百度网盘账号,照片等重要信息被备份了,怎么办?