回复 9楼 邹特强
因为int型和double的储存数据类型方式不同~基本一点就是sizeof(int)和sizeof(double)的值不同~
PS:至于整数赋值给实数~默认会小数部分为0~
[此贴子已经被作者于2017-2-19 00:04编辑过]
[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
#include <stdio.h> #include <math.h> static double definite_integral(int a,int b,double (*p)(double)); int main() { printf("sinx在0到1上的积分值是:%7.4lf\n",definite_integral(0,1,sin)); printf("cosx在0到1上的积分值是:%7.4lf\n",definite_integral(0,1,cos)); printf("e^x在0到1上的积分值是:%7.4lf",definite_integral(0,1,exp)); return 0; } static double definite_integral(int a,int b,double (*p)(double)) { double fx=0; double n; double c,d; for(n=1;n<=1000;n++) { c=a+(b-a)*1.0/1000*n; //这里我加上了*1.0 d=(*p)(c); fx=fx+(b-a)*1.0/1000*d; //同上,运行看看结果是否你要的结果 } return fx ; }