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