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;
    }

此代码无法检测用户是否输入了两个零。如何修改可以检测输入值为零的代码?

谢谢

4

1 回答 1

1

任何 % 0 都是未定义的,因此您需要在其他 if 语句之前添加对 y == 0 的检查。它必须是第一个 if 语句才能确保它被评估;否则您的其他陈述之一将首先错误地捕获它。

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 回答