IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> C语言用矩形法梯形法计算定积分 -> 正文阅读

[数据结构与算法]C语言用矩形法梯形法计算定积分

C语言用矩形法,梯形法计算定积分


在这里插入图片描述
要求:写一个通用的函数实现,用指向函数的指针实现,用矩形法和梯形法计算定积分,断点分11,101,1001三种情况计算,并比较计算结果

#include <stdio.h>
#include <math.h>
#define PI 3.1415926
#define E 2.71828182
double my_tan(double x)
{
	return tan(x);
}
double my_exp(double x)
{
	return exp(x);
}
double fun1(int point,double a,double b,double (*p)(double))//回调函数 
{
	double sum=0,n=fabs(a-b)/point;//将区间[a,b]分成point小块,每小块的宽度为n 
	int i=0;
	for(i=0;i<point;i++)
	{
		sum+=n*(*p)(a+i*n+n/2);//面积=低*高 ,再把每一小块的面积加起来 
	}
	return sum;
}
double fun2(int point,double a,double b,double (*p)(double))//回调函数 
{
	double sum=0,n=fabs(a-b)/point;
	int i=0,j=0;
	for(i=0;i<point;i++)
	{
		sum+=n*((*p)(a+n*j)+(*p)(a+n*(j+1)))/2.0;//面积=(上低+下底)*高/2 
		j+=1;
	}
	return sum;
}
void menu()
{
	printf("************************************\n");
	printf("***** 1.矩形法     2.梯形法 ********\n");
	printf("************************************\n");
}
int main()
{
	double tValue1,tValue2,tValue3,eValue1,eValue2,eValue3;
	int k;
	printf("你想要用什么方法计算定积分!!!\n");
	menu();
	printf("请输入:>");
	scanf("%d",&k);
	switch(k)
	{
		case 1:
			{
				tValue1=fun1(11,-PI/4,PI/4,my_tan);
			 	tValue2=fun1(101,-PI/4,PI/4,my_tan);
				tValue3=fun1(1001,-PI/4,PI/4,my_tan);
				eValue1=fun1(11,-E,E,my_exp);
				eValue2=fun1(101,-E,E,my_exp);
				eValue3=fun1(1001,-E,E,my_exp);
				break;
			}
		case 2:
			{
				tValue1=fun2(11,-PI/4,PI/4,my_tan);
				tValue2=fun2(101,-PI/4,PI/4,my_tan);
				tValue3=fun2(1001,-PI/4,PI/4,my_tan);
				eValue1=fun2(11,-E,E,my_exp);
				eValue2=fun2(101,-E,E,my_exp);
				eValue3=fun2(1001,-E,E,my_exp);
				break;
			}
		default:
			printf("输入错误\n");
			goto end;
			break;
	}
	printf("tValue1=%f\ntValue2=%f\ntValue3=%f\n",tValue1,tValue2,tValue3);
	printf("eValue1=%f\neValue2=%f\neValue3=%f\n",eValue1,eValue2,eValue3);
	end:
	return 0;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:52:03  更:2021-11-19 17:53:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:51:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码