69,367
社区成员
发帖
与我相关
我的任务
分享
#include"stdio.h"
int main()
{
int t=1;
while(t==1)
{
int v;
char ch;
scanf("%d",&v);
printf("第%d个顶点的第一个邻接顶点为%d\n",v,v+1);
printf("结束吗?(y/n)\n");
ch=getchar();
if(ch=='y')
{
t=0;
}
else
{
t=1;
}
}
return 0;
这个程序有问题,scanf之后应该加个去除回车符
scanf("%d%*c",&v);
。吃掉回车。scanf("%d",&v); 这句语句结束后还有一个 '\n'在输入缓冲区内 ch=getchar(); 第一次获取了 缓冲区内的 '\n',即ch 值为 '\n' 不满足 if(ch=='y') 再次循环 可以将 scanf("%d",&v); 改为 scanf("%d",&v); getchar();
scanf("%d%*c",&v);
。吃掉回车。自己debug