注册 登录
编程论坛 C语言论坛

这个程序为什么输入0不能退出while循环?

lubin16 发布于 2020-07-06 22:17, 2077 次点击
  1 #include<stdio.h>
  2 #define MIN_PER_HOUR 60
  3 int main (void)
  4 {
  5         int min,hour,surplus;
  6         printf("convert minutes to hour and minutes!\n"
  7                         "enter the mumber of minutes(<=0 to quit)\n");
  8         while (scanf("%d", &min) > 0)
  9         {
 10                 hour = min / MIN_PER_HOUR;
 11                 surplus = min % MIN_PER_HOUR;
 12                 printf("%d hour %d mins\n", hour, surplus);
 13                 printf("Enter next values.(<=0 quit)\n");
 14         }
 15         printf("Thaks!\n");
 16
 17         return 0;
 18 }
为什么不能退出while循环,请大神解释解释!!!
拜托了!!!!
3 回复
#2
lin51616782020-07-06 22:25
因为你输入的0 变成min的值
和判断的内容没关系
判定的是scanf的返回值和0比较的结果
scanf的返回值是成功读入的数据项数

#3
八画小子2020-07-06 22:49
程序代码:
#include<stdio.h>

#define MIN_PER_HOUR 60

int main(void)
{
    int min, hour, surplus;
    printf("convert minutes to hour and minutes!\n"
        "enter the mumber of minutes(<=0 to quit)\n");
    while (scanf("%d", &min) > 0 && min > 0)
    {
        hour = min / MIN_PER_HOUR;
        surplus = min % MIN_PER_HOUR;
        printf("%d hour %d mins\n", hour, surplus);
        printf("Enter next values.(<=0 quit)\n");
    }
    printf("Thaks!\n");

    return 0;
}
#4
lubin162020-07-07 01:11
谢谢2位大神的神回复了!学习了!
1