关于do...while的问题

2025-12-24 12:25:01
推荐回答(2个)
回答1:

-_-!
运行第二个程序的时候你是输入一个'y'然后打回车吧?这样子当然就退出了。那是因为scanf("%c")是在输入缓冲区里顺序读取字符的(包括空格与回车等奇怪的字符),那么它第一次循环读取了你输入的那个y,然后马上执行第二次循环,这时候读取的是你打的那个回车符。回车符!=y,所以当然就退出循环了。要做到输入y就继续循环的话要这么写:
#include
#include
void main()
{
char a[100];
do
{
printf("\n(y/n)?");
scanf("%s",a);
}while(strcmp(a,"y")==0||strcmp(a,"Y")==0);
}
不知道这么说说清楚了没有....

回答2:

会不会是倒数第二行的
}while(a == 'Y'||a=='y');
中间a == 'Y'多了两个空格啊
把它变成a=='Y'试试。
运行时它提示第几行出错了吗?