wayne 发表于 2011-1-11 09:56:28

39# G-Spider
跟你的一样,还是那个问题,mpz_out_str 运行时错误.

不过,我还是传一下文件,里面包含.h , .def , .exp ,.lib ,dll 文件 。

wayne 发表于 2011-1-11 10:01:10

40# 无心人
我也好像记得你说过.
大概我当时的折腾 就是看了你的帖子吧, 只恨 没成功,
当时我还不知道C++ 的dll跟C产生的dll 不一样呢

wayne 发表于 2011-1-11 10:19:22

40# 无心人
嗯,很简单的, 才两步,本来就不复杂,
是我们前面的讨论过于冗长, G-Spider 贴的代码也过于冗长罢了,给无心大人造成了错觉,罪过罪过 ,:lol

我建议郭大大把 的控件换成有滑动块的那种,一旦代码贴得过多,我们可以在局限的区域滑动小滑块 ,不至于在整个页面拖动滑块,那样会很累的.

===========================
G-Spider ,:victory:,要不,你前面那些长帖我给你编辑一下?或者你编辑也行,就是弄成附件的形式

G-Spider 发表于 2011-1-11 10:43:27

43# wayne
我改不了了。直接删掉,不可造成错觉,罪过罪过 ,:lol ,不过有点好处,百度gmp函数时很可能别人就检索到这帖。

G-Spider 发表于 2011-1-11 11:53:46

41# wayne
mpz_out_str有点问题,就用mpz_get_str吧。
//***************************
//替换mpz_out_str(stdout,36,r);
//替换mpz_out_str(f,36,r);
      mpz_get_str(qq,36,r);//The base may vary from 2 to 36
       printf("%s",qq);//console显示输出
   i=0;
       while(qq[ i ]!=0)
            fputc(qq,f);//写入文件
   fclose(f);
//***************************
还原你的测试:        #include <stdio.h>
        #include "gmp.h"
        #pragmacomment(lib,"libgmp.lib")
             int main (void)
         { FILE *f=fopen("a.txt","w");
            int num=50,i;
          
           mpz_t n,m,c,r;
           char qq; //或用malloc分配空间,并初始化为0
           mpf_t pi,e,xx,yy;//**********
           mpq_t x,y,z;
          
           for(i=0;i<100;i++)
          qq='\0';
               mpz_init_set_str (n, "13703703579", 10);
           mpz_init_set_str (m, "29012345415", 10);          
           mpz_inits(c,r,'\0');
           mpz_gcd(c,n,m);
           mpz_fac_ui(r,num);          
   
           gmp_printf ("gcd(%Zd,%Zd) = %Zd\n\n%d! =%Zd:\n in base 36:\t",n,m,c,num,r);
//***************************
           //替换mpz_out_str(stdout,36,r);
           //替换mpz_out_str(f,36,r);
           mpz_get_str(qq,36,r);//The base may vary from 2 to 36
               printf("%s",qq);//console显示输出
            i=0;
          while(qq!=0)
            fputc(qq,f);//写入文件
       fclose(f);
//***************************

           mpz_fib_ui(r,num);
           gmp_printf("\n\nthe %dth fibonacci number is:\n %Zd\n",num,r);
           mpz_bin_ui(c,n,num);
           gmp_printf("\nBinomial number C(%Zd,%d) is:\n%Zd\n",n,num,c);
           mpz_pow_ui(c,n,num);
           gmp_printf("\n%Zd^%d =:\n%Zd\n",n,num,c);
          
           mpf_set_default_prec(500);
          
           mpf_init_set_str(pi,"3.14159265358979323846264338327950288419716939937510582097494459230781",10);
           mpf_init_set_str(e ,"2.71828182845904523536028747135266249775724709369995957496696762772407",10);
           mpf_inits(xx,yy,'\0');
           mpf_pow_ui(xx,pi,4);mpf_pow_ui(yy,pi,5);
           mpf_add(xx,xx,yy);
           mpf_pow_ui(yy,e,6);
           gmp_printf("\npi^4+pi^5=%.50Ff\ne^6\t =%.50Ff\n\ninput a number to compute its next prime,",xx,yy);
           gmp_printf("arbitraryly large:\n");
           gmp_scanf("%Zd",c);
           mpz_nextprime(r,c);
           gmp_printf("after %Zd,closely followed a prime:\n%Zd\n\n",c,r);
                        
          
           mpq_inits(x,y,z,'\0');
           gmp_printf("you input two fractions with a plus sign(2/4+1/3),I compute their sum:\n");
           gmp_scanf ("%Qd + %Qd",x,y);
           mpq_canonicalize(x);
           mpq_canonicalize(y);
           mpq_add(z,x,y);
           gmp_printf("\nactually,after reduction,your equation is:\n%Qd+%Qd = %Qd\nGoodbye!\n",x,y,z);
             
           mpz_clears(m,n,c,r,'\0');
           mpq_clears(x,y,z,'\0');
           mpf_clears(xx,yy,'\0');

       return 0;
   }

wayne 发表于 2011-1-11 14:11:33

45# G-Spider
这代码怎么那么熟悉,...............
我好像没上传吧

lnszyd 发表于 2011-2-26 00:08:04

41# wayne

lnszyd 发表于 2011-2-26 00:11:24

41# wayne
有没有未编译的VS下的源码?我是新手,才到。多多关照。谢谢!

wayne 发表于 2011-2-26 08:40:53

49# lnszyd

呵呵,avatar是 牛顿啊,欢迎加入我们论坛。
我想问问,你要未编译的VS下的源码,想接着干嘛?

G-Spider 发表于 2011-6-13 15:01:19

wayne有没有条件编译一下windows版本的GMP 5.0.2
页: 1 2 3 4 [5] 6 7 8
查看完整版本: mathe能否提供更新的windows版gmp库