标题:这个程序为什么输入0不能退出while循环?
只看楼主
lubin16
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2020-7-6
结帖率:0
已结贴  问题点数:20 回复次数:3 
这个程序为什么输入0不能退出while循环?
  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循环,请大神解释解释!!!
拜托了!!!!
搜索更多相关主题的帖子: min printf 循环 退出 while 
2020-07-06 22:17
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:10 
因为你输入的0 变成min的值
和判断的内容没关系
判定的是scanf的返回值和0比较的结果
scanf的返回值是成功读入的数据项数


https://zh.
2020-07-06 22:25
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:705
专家分:2043
注 册:2010-11-11
得分:10 
程序代码:
#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;
}
2020-07-06 22:49
lubin16
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2020-7-6
得分:0 
谢谢2位大神的神回复了!学习了!
2020-07-07 01:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502415-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014067 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved