一个求积分的题目,看我错在哪里?

geniuscaobo 2006-04-28 11:54:28
#include<stdio.h>
#define N 1000
float fbds(float x)
{
return(1.0+x+x*x*x);
}

float jifen(float a,float b,float(*fun)(float))
{
int i;
float h=(b-a)/N,s=0;
for(i=0;i<N;i++)
s+=[(*fun)(a+i*h)+(*fun)(a+(i+1)*h)]*h/2;//error fun //利用梯形面积求微元
return s; //warn 'h' has never use
}

int main()
{
jifen(0.0,2.0,fbds);
return 0;
}
为什么出现这种情况,谁愿帮我改一下。
谢了
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftkghost 2006-04-28
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<stdlib.h>
#define N 1000
float fbds(float x)
{
return(1.0+x+x*x*x);
}

float jifen(float a,float b,float(*fun)(float))
{
int i;
float h=(b-a)/N,s=0;
for(i=0;i<N;i++)
s+=((*fun)(a+i*h)+(*fun)(a+(i+1)*h))*h/2;//error fun //利用梯形面积求微元
return s; //warn 'h' has never use
}

int main()
{
printf("%f", jifen(0.0,2.0,fbds));
getchar();
return 0;
}

其他没问题了 积分值为8也是对的 (除了N小了造成的误差)
ftkghost 2006-04-28
  • 打赏
  • 举报
回复
s+=[(*fun)(a+i*h)+(*fun)(a+(i+1)*h)]*h/2;//error fun //利用梯形面积求微元

C++不是数学,中括号和数学里面可不同啊
Javcs 2006-04-28
  • 打赏
  • 举报
回复
8.000008

就是括号错了吧

33,317

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧