0

ここにコードがあります。

   int main(int argc, const char * argv[])
    {

        @autoreleasepool {

            int x,y;
            //BOOL divsibleYESOrNo;

            NSLog(@"enter two number for test it\n");
            scanf("%i %i",&x,&y);

            if ( x%y ==0 ) {

                NSLog(@"YES,it can be");
            }

            else if (x%y !=0) {
                NSLog(@"no there cant.");
            }
            else 
                NSLog(@"zero is not allow");
        }
        return 0;
    }

このコードは、ユーザーが 2 つのゼロを入力したかどうかを検出できません。入力値がゼロであることを検出できるこのコードを変更するにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

% 0 はすべて未定義であるため、他の if ステートメントの前に y == 0 のチェックを追加する必要があります。確実に評価されるようにするには、最初の if ステートメントにする必要があります。そうしないと、他のステートメントの1つが最初に誤ってそれをキャッチします。

if ( y == 0 ) {
    NSLog(@"zero is not allowed.");
}
else if ( x%y == 0 ) {
    NSLog(@"YES,it can be");
}
else {
    NSLog(@"no there cant.");
}
于 2012-07-26T17:05:37.607 に答える