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 に答える