为什么按y后又执行了一遍循环
#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("%d",&v);
这句语句结束后还有一个 '\n'在输入缓冲区内
ch=getchar();
第一次获取了 缓冲区内的 '\n',即ch 值为 '\n'
不满足 if(ch=='y')
再次循环
可以将
scanf("%d",&v);
改为
scanf("%d",&v);
getchar();
[解决办法]
这个程序有问题,scanf之后应该加个去除回车符