0

我在编译以下程序时遇到非法使用浮点错误。请让我知道我在哪里犯了错误。

#include<stdio.h>
#include<conio.h>

void main()
{
    float a;
    clrscr();
    printf("\n Enter the num : ");
    scanf("%f", &a);

    if ( a >= 0 )
    {
        if ( (a % 2) == 0 ) //ERROR HERE
        {
            printf("\n You entered a positive even num");
        }
        else
        {
            printf("\n You entered a positive odd num");
        }
    }
    else
    {
        if ( (a % 2) == 0 ) //ERROR HERE
        {
            printf("\n You entered a negative even num");
        }
        else
        {
            printf("\n You entered a negative odd num");
        }
    }
    getch();
}
4

1 回答 1

5

因为%适用于整数类型。使用fmod().

但像往常一样,对浮点类型执行相等比较 (== ) 时要非常小心。也许在您的情况下,最好始终使用整数类型。

于 2012-06-14T16:42:43.217 回答