ошибка вывода: в коде GMP нет результатов - PullRequest
0 голосов
/ 29 октября 2019

это код в GMP, который должен дать нам результаты теории Безу.

это функция

void Bezout (mpz_t rkm2,mpz_t rkm1, int ukm1, int vkm1, int ukm2, int vkm2) {

    mpz_set_ui(ukm1,0);
    mpz_set_ui(vkm1,1);
    mpz_set_ui(ukm2,1);
    mpz_set_ui(vkm2,0);


mpz_t rk;
mpz_init(rk);
mpz_mod(rk,rkm2,rkm1);
mpz_t o;
mpz_init(o);
mpz_t k;
mpz_init(k);
mpz_t qk;
mpz_init(qk);
mpz_sub(k,rkm2,rkm1);
mpz_div(o,k,rkm1);
mpz_set(qk,o);
mpz_t i;
mpz_init(i);
mpz_t j;
mpz_init(j);

  if (mpz_cmp_ui(rk, 0) == 0) {
            gmp_printf("donner a= %2d \n ",ukm1);
            gmp_printf("donner b= %2d \n ",vkm1);
                                }
  else {
    mpz_t x;
    mpz_init(x);
    mpz_t y;
    mpz_init(y);
        mpz_mul(x,qk,ukm1);
         mpz_sub(i,ukm2,x);
         mpz_mul(y,qk,vkm1);
         mpz_sub(j,vkm2,y);
        Bezout(rkm1,rk,i,j,ukm1,vkm1);
            }
            }

int main (int argc, char * argv []) {

mpz_t a, b;
int x,y,z,o;
mpz_init(a);
mpz_init(b);
gmp_printf("donner a \n ");
gmp_scanf("%Zd", &a);
gmp_printf("donner b \n");
gmp_scanf("%Zd", &b); if (mpz_cmp(a, 0) == 0 || mpz_cmp(b, 0) == 0) {
gmp_printf("On suppose a et b strictement positifs.\n ");
    }
     else
            Bezout(a,b,x,y,z,o);
return 0; }

у меня должны быть значения, но программа останавливается в середине

...