注册 登录
编程论坛 C++教室

大神帮忙看一下我这个h的值为什么一直是0

孤军奋战 发布于 2018-03-22 15:44, 961 次点击
#include <iostream>
#include <cmath>
using namespace std;
double f(int a,int b,double (*p)(double x))
{
  int i,n=1000;
  double h,s=0.0;
  h=(b-a)/n;
  for(i=1;i<=n;i++)
      s=s+h*p(a+i*h);
  return s;
}
double f1(double x)
{
 return x+1;
}
int main()
{
  cout<<f(0,1,f1)<<endl;
  return 0;
}
3 回复
#2
rjsp2018-03-22 16:19
h=(b-a)/n;
我猜你想要的是
h=(b-a)*1.0/n;

看不懂你想干什么
#3
孤军奋战2018-03-22 16:27
回复 2楼 rjsp
就是在(a,b)内等分n份,不能写成(b-a)/n吗?
#4
rjsp2018-03-22 18:18
1/1000 是 整数0
1.0/1000.0 是 浮点数0.001
1