c - Scanf 函数不会循环我的 while 循环

标签 c

    k = 0;
    while (k == 0){
        printf ("enter a value between 0 - 80\n");
        scanf ("%d", &coldest);

        if(coldest <= 80 && coldest >= 0){
            k = 1;
        }
        else 
            k = 0;
    }
    printf ("this number ---->%d<-----\n", coldest);

这是我写的,当您输入参数 0-80 之外的任何内容时,它应该循环并再次询问用户,但我遇到一个问题,它将跳过 scanf 然后继续弹出 printf

编辑:≤ 到 <= 和 ≥ 到 >= -Edit2:80 <=最冷到最冷<= 80

最佳答案

if 条件测试

is coldest >= 80
AND
is coldest >= 0

你现在能发现错误吗?

此外,不测试 scanf 的返回值始终是一个错误

关于c - Scanf 函数不会循环我的 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48974694/

相关文章:

c - C语言中main方法中参数的目的是什么

c - C 中的全局数组声明?

c - 如何通过检查分隔符在字符串中添加字符?

c - 将 mex 文件链接到静态 mpfr 库时出现问题

c++ - 在 Ubuntu 中监控键盘按键

c++ - 指向数组的指针

c - 在 C 中获取日期和时间时遇到问题。我寻找答案并尝试了很多,但没有成功,

c - 警告 : implicit declaration of function - order of includes matter?

C 结构到结构赋值 - 目标结构中的值不正确

c - FreeRTOS 信号量