读书人

为何按y后又执行了一遍循环

发布时间: 2013-12-13 13:57:17 作者: rapoo

为什么按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之后应该加个去除回车符

读书人网 >C语言

热点推荐