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

higurasikagome 2013-12-12 04:42:54
#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;
...全文
64 点赞 收藏 10
写回复
10 条回复
C少 2014年01月03日
引用 9 楼 qq921965140 的回复:
[quote=引用 8 楼 oOo532200 的回复:] 使用getchar()的问题,debug一下就知道了,你用的什么IDE,版本是多少。 把getchar()改成_getch(),添加#include <conio.h>非标准C库。就欧克了
引用 8 楼 oOo532200 的回复:
使用getchar()的问题,debug一下就知道了,你用的什么IDE,版本是多少。 把getchar()改成_getch(),添加#include <conio.h>非标准C库。就欧克了
我水平很渣,你们说的太高深了[/quote] 这不是水平问题,方法其实很多种
回复 点赞
higurasikagome 2013年12月12日
引用 8 楼 oOo532200 的回复:
使用getchar()的问题,debug一下就知道了,你用的什么IDE,版本是多少。 把getchar()改成_getch(),添加#include <conio.h>非标准C库。就欧克了
引用 8 楼 oOo532200 的回复:
使用getchar()的问题,debug一下就知道了,你用的什么IDE,版本是多少。 把getchar()改成_getch(),添加#include <conio.h>非标准C库。就欧克了
我水平很渣,你们说的太高深了
回复 点赞
C少 2013年12月12日
使用getchar()的问题,debug一下就知道了,你用的什么IDE,版本是多少。 把getchar()改成_getch(),添加#include <conio.h>非标准C库。就欧克了
回复 点赞
derekrose 2013年12月12日
引用 2 楼 qq921965140 的回复:
引用 1 楼 derekrose 的回复:
自己debug
我来问题,能好好回答吗
这就是认真的回答,不能每次都让人帮你debug,debug之后还不能解决问题再来问
回复 点赞
higurasikagome 2013年12月12日
引用 4 楼 tao346995926 的回复:
这个程序有问题,scanf之后应该加个去除回车符
十分谢谢提醒,我想起来啦!用这个
scanf("%d%*c",&v);
。吃掉回车。
回复 点赞
higurasikagome 2013年12月12日
引用 3 楼 missheaven2011 的回复:
scanf("%d",&v); 这句语句结束后还有一个 '\n'在输入缓冲区内 ch=getchar(); 第一次获取了 缓冲区内的 '\n',即ch 值为 '\n' 不满足 if(ch=='y') 再次循环 可以将 scanf("%d",&v); 改为 scanf("%d",&v); getchar();
十分谢谢提醒,我想起来啦!用这个
scanf("%d%*c",&v);
。吃掉回车。
回复 点赞
tao346995926 2013年12月12日
这个程序有问题,scanf之后应该加个去除回车符
回复 点赞
missheaven2011 2013年12月12日
scanf("%d",&v); 这句语句结束后还有一个 '\n'在输入缓冲区内 ch=getchar(); 第一次获取了 缓冲区内的 '\n',即ch 值为 '\n' 不满足 if(ch=='y') 再次循环 可以将 scanf("%d",&v); 改为 scanf("%d",&v); getchar();
回复 点赞
higurasikagome 2013年12月12日
引用 1 楼 derekrose 的回复:
自己debug
我来问题,能好好回答吗
回复 点赞
derekrose 2013年12月12日
回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告