首饰所有属性强化:在线急等,非常奇怪的输入错误,VC编译

来源:百度文库 编辑:神马品牌网 时间:2024/05/01 06:40:40
就是一个简单的程序,我简化截取了主要错误部分
当输入正确数值时,没有问题
当故意输入越界数值时,程序老是跳过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的区别还是很清楚的,你的答案没有意义

你这里的do语句在while语句的前面,系统运行时不管while语句里的判断是否正确都会先do一下的。
把while语句放在do语句前面试试,这次应该正常了。