integral.cpp

来自「积分函数的算法」· C++ 代码 · 共 40 行

CPP
40
字号
#include<stdio.h>
#include<math.h>
main()
{
	void integral(double,double,double(*function)(double));
	double a,b;
	printf("请输入上限与下限:");
	scanf("%lf %lf",&a,&b);
	integral(a,b,sin);
	integral(a,b,cos);
	integral(a,b,exp);
	return 0;
}
void integral(double a,double b,double(*function)(double))
{
	int n=1000000;
	double each_length=(a-b)/n;
	double result=0;
	//矩形法
//	for(int i=0;i<n;i++)
//	{
//		result+=(*function)(b+each_length*i);
//	}
//	result*=each_length;
	//辛扑生抛物线法
	double temp_result;
    for(int i=0;i<=n;i++)
	{
		temp_result=(*function)(b+each_length*i);
		if(i==0||i==n)
		{
			result+=temp_result;
			continue;
		}
		if(i%2==0)result+=2*temp_result;
		else result+=4*temp_result;
	}
    result*=each_length/3;
	printf("%17.14lf\n",result);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?