[求助] 循环语句中总是执行不需要的语句,怎么解决?
题目:从键盘输入一批整数,最后一个数为0,编程找出其中的最大数和最小数,并输出。
(要求:必须用的循环语句,while,do-while,for任选其一)
我自己写的代码:
#include<stdio.h>
main()
{
int max=0,min=0,i;
do
{
printf("Please Enter Number:");
scanf(" %d" ,&i);
if(max<i) max=i;
if(min>i&&i!=0) min=i;
}
while(i);
printf("MAX = %d , MIN = %d" ,max,min);
}
代码完成后,用TC2.0编译,输入正常,比较正常。
如:输入123,456,789,-123,-456,-789后,得到结果MAX = 789,MIN = -789,这是正确的。
但是,如果输入的数只是正数,最后输出的 MIN 就总是等于 0 ,意思就是 0 参与了数据比较。
本来按照题目的意思,0 应该只是作为结束符来使用,不参与比较的。
代码中我已经在这句中:
if(min>i&&i!=0) min=i;
加入了i!=0,但是很奇怪的,最后怎么运行结果MIN都是0
我以为是循环语句选用不正确,但是while,do-while,for都试过一遍,结果依然错误。
请高手帮我改正!!先谢过!