如何知道数字是正数还是负数或0

时间:2014-02-26 07:37:32

标签: c if-statement

是否可以仅使用两个positive来了解negative中的号码是0还是c language还是if conditions

如果是,那怎么样?请让我知道

3 个答案:

答案 0 :(得分:3)

仅使用两个if s:

if (num <= 0) {
      if (num == 0) {
          /* num is zero */
      } else {
          /* num is negative */
      }
} else {
    /* num is positive */
}

答案 1 :(得分:3)

我希望这可以解决你的问题

#include <stdio.h>
int main()
{
    float num;
    printf("Enter a number: ");
    scanf("%f",&num);    // Take input from user
    if (num<=0)          // if Number is >= 0
    {                    
        if (num==0)      // if number is equal to zero
          printf("You entered zero.");
        else             // if number is > 0
          printf("%.2f is negative.",num);
    }
    else                // if number is < 0
      printf("%.2f is positive.",num);
    return 0;
}

答案 2 :(得分:0)

如果c是一个浮点,问题会变得很有趣。

c可能是 1)&gt; 0
2)&lt; 0
3)= 0
4)“非数字”

#include <math.h>
...
int classification = fpclassify(x); 
if (classification == FP_NAN || classification == FP_ZERO)) {
  if (classification == FP_NAN) puts("NaN")
  else puts("zero");
}
else  {
  if (signbit(x)) puts("< 0" )
  else puts("> 0");
}

最多执行了2 if()次。

不使用分类函数/宏

if (x != x || x == 0.0)) {
  if (x != x) puts("NaN")
  else puts("zero");
}
else  {
  if (x < 0.0) puts("< 0" )
  else puts("> 0");
}