首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-12-13 
为什么按y后又执行了一遍循环#includestdio.hint main(){int t1while(t1){int v char chscanf(%d

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

热点排行