回复 9楼 邹特强
因为int型和double的储存数据类型方式不同~基本一点就是sizeof(int)和sizeof(double)的值不同~
PS:至于整数赋值给实数~默认会小数部分为0~
[此贴子已经被作者于2017-2-19 00:04编辑过]

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
[此贴子已经被作者于2017-2-19 00:04编辑过]

2017-02-18 23:57
2017-02-19 15:42
2017-02-19 15:45
程序代码:
#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 ;
}
2017-02-19 15:49