2012-07-05 36 views
-1

我有这样的代码(来自维基复制粘贴)。它代表了你在代码中看到的那些大数的乘积。我的gmp版本是5.0.5。C GMP无限精度 - 我做错了什么?

#include <stdio.h> 
#include <gmp.h> 

int main() { 
    mpz_t x; 
    mpz_t y; 
    mpz_t result; 

    mpz_init(x); 
    mpz_init(y); 
    mpz_init(result); 

    mpz_set_str(x, "762323423423423443534512034534534534558254738945", 10); 
    mpz_set_str(y, "92635911345345345345234534534534567767i888439081", 10); 

    mpz_mul(result, x, y); 
    gmp_printf("%Zd\n", result); 

    mpz_clear(x); 
    mpz_clear(y); 
    mpz_clear(result); 

    return 0; 
} 

结果是.. 0.为什么?

回答

3

起初看起来很好,所以我不得不运行它自己并打印出你的其他两个变量。

y设置为0,因为你有你的号码中间的“我”的信,因此它无法解析它。

+0

OMG。我真笨。谢谢 ... – marxin 2012-07-05 20:42:05