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

简单问题求解答: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)()。

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

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题