我正在使用 libgmp 创建一个简单的程序。我可以 gmp_printf 所有 gmp 整数,所以我知道它们已正确初始化和分配。当我尝试一个简单的 if-else 条件时,就会出现问题。
mpz_t n;
mpz_t c;
mpz_t m;
mpz_init(n);
mpz_init(c);
mpz_init(m);
mpz_set_str(c, "2", 10);
mpz_set_str(n, "2038074744", 10);
mpz_mod(m, n, c);
gmp_printf("\n%Zd\n%Zd\n%Zd\n", n, c, m);
if(m == 0)
{
printf("number is even\n");
}
else
{
printf("number is odd\n");
}
实际数字打印为 0,但始终显示 else printf。
2038074744
2
0
number is odd
有什么方法可以让这个工作吗?