强制输入大于或等于0且小于24

时间:2017-10-29 21:29:48

标签: c do-while boolean-expression

#include<stdio.h>

int main ()
{
int n,a=0,b=24;
do
  {
    scanf("%d",n); //ask the user to enter a value of n less than 24 
                  // but greater than 0. 
  } while(/*boolean expression logic*/)

if(a<n<b)
    {
    printf("%d\n",n);
    }
    return 0;
}

我需要评估:

  

如果 n 的值大于或等于0且小于24(小于或等于23),则

     

....转到if语句并打印 n

的值      

,否则

     

...要求用户输入 n 的值,即它应该再循环回来。

1 个答案:

答案 0 :(得分:3)

您希望程序在n>=0 && n<24之前继续询问值;换句话说,您希望在!(n>=0 && n<24)时继续询问值,使用De Morgan's law我们可以将其写为!(n>=0) || !(n<24),可以将其缩写为n<0 || n>=24

do
{
    scanf("%d",n);
}
while(n<0 || n>=24)