powershare供电功能:在线急等,非常奇怪的输入错误,VC编译

来源:百度文库 编辑:高校问答 时间:2024/04/29 16:27:48
就是一个简单的程序,我简化截取了主要错误部分
当输入正确数值时,没有问题
当故意输入越界数值时,程序老是跳过getchar(),并且在while条件不满足的时候,仍然do.太奇怪了
希望高手指点,请稍微运行一下本程序,悬赏中,在线急等
我在VC,TC下都编译通过来,可就是有错误
#define NUM 1000
#include<stdio.h>

void input_check(float* x,float*y)
{
char input_again='N';
do
{
scanf("%f %f",x,y);
if ((*x<0)||(*x>639)||(*y<0)||(*y>479))
{
printf("Error input,do you want to input again?(Y/N):\n");
input_again=getchar();
}
}
while (input_again!='n'&&input_again!='N');
printf("\n");
}

void main()
{
float x1[NUM],y1[NUM];
input_check(&x1[0],&y1[0]);
}
问题补充:谢谢一楼的回答,我并不是菜鸟,do-while与while的区别还是很清楚的,你的答案没有意义
问题补充:非常感谢"见过的老狼":增加一个getchar()以吃掉回车符后,问题解决了一半,用'Y'或'y'回答时已经没问题了,可是用'N'或'n'回答仍然问题依旧,不知为什么?