C++ 如何在GMP中获得while循环中的不相等值
我试图在VC2008Express中使用GMP整数执行do-while循环C++ 如何在GMP中获得while循环中的不相等值,c++,gmp,C++,Gmp,我试图在VC2008Express中使用GMP整数执行do-while循环 mpz_t d; mpz_init(d); do{ }while(d!=1); 错误是:错误C2040:'!=':'“mpz_t”与“int”的间接寻址级别不同 d=这是由1部分造成的。如何解决这个问题。我使用GMP的原因是因为数量大。 函数:int-mpz\u-cmp(MP\u-int*操作数1,MP\u-int*操作数2) … 比较操作数1和操作数2。如果操作数1>操作数2,则返回正值;如果 opera
mpz_t d;
mpz_init(d);
do{
}while(d!=1);
错误是:错误C2040:'!=':'“mpz_t”与“int”的间接寻址级别不同
d=这是由1部分造成的。如何解决这个问题。我使用GMP的原因是因为数量大。
函数:int-mpz\u-cmp(MP\u-int*操作数1,MP\u-int*操作数2)
…
比较
操作数1
和操作数2
。如果操作数1>操作数2
,则返回正值;如果operan1==operan2
,如果operan1
,则为负值
检查mpz\u set\u
功能,从常规整数常量(如1
所示)设置一个mpz\u t
值,以与
mpz_t d;
mpz_init(&d);
mpz_t one;
mpz_set_si(&one,1);
// ...
do {
} while(mpz_cmp(&d,&one) != 0);
从
函数:int-mpz\u-cmp(MP\u-int*操作数1,MP\u-int*操作数2)
…
比较
操作数1
和操作数2
。如果操作数1>操作数2
,则返回正值;如果operan1==operan2
,如果operan1
,则为负值
检查mpz\u set\u
功能,从常规整数常量(如1
所示)设置一个mpz\u t
值,以与
mpz_t d;
mpz_init(&d);
mpz_t one;
mpz_set_si(&one,1);
// ...
do {
} while(mpz_cmp(&d,&one) != 0);
即使s.o.对GMP有更具体的了解,这个问题也严重缺乏足够的信息来诊断您的问题!检查我的回答是否解决了您的问题(我知道您使用GMP的目的是什么)。你现在的要求完全不同了!坚持使用
mpz\u cmp()
比较大的数字!请在问题中添加其他信息,不要完全替换原始代码!这使我原来的答案无效,这不太好…mpz_t不是整数。使用mpz函数比较mpz值。查找mpz_类
(在gmpxx.h
)中。即使对于具有更具体GMP知识的s.o.来说,这个问题也严重缺乏足够的信息来诊断您的问题!检查我的回答是否解决了您的问题(我知道您使用GMP的目的是什么)。你现在的要求完全不同了!坚持使用mpz\u cmp()
比较大的数字!请在问题中添加其他信息,不要完全替换原始代码!这使我原来的答案无效,这不太好…mpz_t不是整数。使用mpz函数比较mpz值。查找mpz_类
(在gmpxx.h
中)。