-cfyjbjonn 2019-01-04 19:30 采纳率: 57.1%
浏览 3214
已采纳

简单问题求解答:c语言梯形法求定积分

题目:按如下函数原型,采用梯形法编程实现,在积分区间[a,b]内计算函数y1=∫10(1+x2)dx和y2=∫30x1+x2dx的定积分。其中,指向函数的指针变量f用于接收被积函数的入口地址。
Integral(float (*f)(float), float a, float b);
**输出格式要求:"y1=%f\ny2=%f\n"

我的答案:请问哪里错了?
#include
#define n 10000

float y1(float x)
{
float y;
y = x*x + 1;
return y;

}

float y2(float x)
{
float y;
y = x/(x*x + 1);
return y;

}

Integral(float (*f)(float), float a, float b)
{
int i;
float w;
float h = (b-a)/n;
float s = f(a)+f(b);
for(i = 1;i < n; i++)
{
s += f(a + i*h);
}
w = s*h /2;
return w;

}

main()
{
float y11;
y11 = Integral( y1 , 0, 1);

float y22;
y22 = Integral( y2 , 0, 3);

printf("y1=%f\ny2=%f\n",y11,y22);
return 0;

}

  • 写回答

1条回答 默认 最新

  • _ZGq 2019-01-04 19:38
    关注

    C语言是不允许对于函数指针f调用f()的(不过C++允许),如果要调用就用(*f)()。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决