c语言while循环,该怎么处理
c语言while循环
为什么注释掉getchat()后无论输入是y还是n都会退出?
------解决思路----------------------
因为你按提示输入最大值后会按下enter键,如果在 scanf("%c",&c)前getchar()的话,getchar()就会接收你刚才按下的enter键字符,之后再输入y、n就能正常运行,但是当你注释掉 scanf("%c",&c)前getchar()后,这个enter键字符就会被scanf("%c",&c)执行,从而c字符接收的就是enter字符了,再与c == 'y'比较当然不相等了
#include <stdio.h>
int main(void)
{
int i,j;
char c = 'y';
while (c == 'y')
{
printf("请输入最大值:");
scanf("%d",&j);
for (i = 1; i <= j; i++)
{
printf("%d\n",i);
}
getchar();
printf("是否继续?y/n.....");
scanf("%c",&c);
}
getchar();
return 0;
}
为什么注释掉getchat()后无论输入是y还是n都会退出?
------解决思路----------------------
因为你按提示输入最大值后会按下enter键,如果在 scanf("%c",&c)前getchar()的话,getchar()就会接收你刚才按下的enter键字符,之后再输入y、n就能正常运行,但是当你注释掉 scanf("%c",&c)前getchar()后,这个enter键字符就会被scanf("%c",&c)执行,从而c字符接收的就是enter字符了,再与c == 'y'比较当然不相等了