栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[西南交通大学c语言编程题]按如下函数原型,采用梯形法编程实现,在积分区间[a,b]内划分n个小区间,计算函数。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[西南交通大学c语言编程题]按如下函数原型,采用梯形法编程实现,在积分区间[a,b]内划分n个小区间,计算函数。

题目描述

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

#include 
float Fun1(float x);
float Fun2(float x);
float Integral(float (*f)(float), float a, float b);//指向函数的指针变量f用于接收被积函数的入口地址
int main()
{	   		      
    float y1, y2;
    y1 = Integral(Fun1, 0.0, 1.0);
    y2 = Integral(Fun2, 0.0, 3.0);
    printf("y1=%fny2=%fn", y1, y2);
    return 0;
}	   		      

float Fun1(float x)
{	   		      
    return  1 + x * x;
}	   		      

float Fun2(float x)
{	   		      
    return x / (1 + x * x);
}	   		      

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

编译结果:

编译器:visual stdio 2019

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号