怎么修改使其能判断负数的奇偶性
为什么只能判断正数的奇偶性?????? 也可以判断负数啊 本帖最后由 jackz007 于 2022-10-16 14:21 编辑
C 语言负数取余,按正数操作,被除数决定余数的符号,比如,19 % -7 = 5,-19 % 7 = -5,-19 % -7 = -5。就是说,被除数决定余数的符号,与除数无关。
#include <stdio.h>
int main(void)
{
int a = 53 , b = 21 ;
printf("%4d %% %4d = %4d\n" , a , -b , a % (-b)) ;
printf("%4d %% %4d = %4d\n" , -a , b , (-a) % b) ;
printf("%4d %% %4d = %4d\n" , -a , -b , (-a) % (-b)) ;
printf("%4d %% %4d = %4d\n" , b , -a , b % (-a)) ;
printf("%4d %% %4d = %4d\n" , -b , a , (-b) % a) ;
printf("%4d %% %4d = %4d\n" , -b , -a , (-b) % (-a)) ;
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
53 %-21 = 11
-53 % 21 =-11
-53 %-21 =-11
21 %-53 = 21
-21 % 53 =-21
-21 %-53 =-21
D:\\C>
根据这个结论,a % 2 同样可以用来判断负值 a 的奇偶性,只不过要把判断条件改一下
需要把
if (a % 2 == 1)
改为
if(a % 2)
这样,就可以做到正负数通杀!
页:
[1]