这个c语言程序为什么在不输入y或n时,输出两遍continue?

#include<stdio.h>int main (){ char x; do { printf("contiue?(y/n)\n"); scanf("%c",&x); }while(x!=121&&x!=110); printf("%c",x); return 0;}

第一遍就是执行do{}时,第二次是判断while{}时产生的,因为你不输入y或n,而是输入其他的字母,所以while里面表达式为真,所以再执行一次do{},
do{}while{}句型的循环是至少执行一次的 如果while{}为真,就会继续循环

这个程序的功能就是你必须选择“y”或“n”.否则继续提醒输入,直到你输入他们两个之一为止。

你可以试一下 如果一直不输入“y”或“n”,他会一直提醒你contiue?(y/n)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-24
加getchar()本回答被提问者采纳
第2个回答  2013-12-24
回车也算一个输入的追问

怎么弄才不输出两次?

追答

后边再加一个getch,“吃”掉回车

追问

不行

追答

#include
int main ()
{
char x;
char dummy;
do
{
printf("contiue?(y/n)\n");
scanf("%c",&x);
scanf("%c",&dummy); 《====加在这儿,用dummy吃掉Enter
}while(x!=121&&x!=110);
printf("%c",x);
return 0;
}

相似回答