📄 c语言.txt
字号:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#define MAX 4
#define PI 3.141592659897932384626433832795
/*//#define function(x) (x*x)//exp(x)*cos(x)//4.0/(1+x*x)//pow(x,9)
*/
#define epsilon3 0.01
double functi(double x)
{
double eve = 0.0; // 均值
double sigma = 1.0; // 方差
return 1./(sqrt(2*PI)*sigma)*exp(-(x-eve)*(x-eve)/(2*sigma*sigma));
}
double Gauss(double a, double b,double (*f)(double))
{
double A[7];
double X[7];
A[0]=0.1294849662;A[1]=0.1294849662;A[2]=0.2797053915;A[3]=0.2797053915;A[4]=0.3818300505;A[5]=0.3818300505;A[6]=0.4179591837;
X[0]=0.9491079123;X[1]=-0.9491079123;X[2]=0.7415311856;X[3]=-0.7415311856;X[4]=0.4058451514;X[5]=-0.4058451514;X[6]=0.0000000000;
double temp=0.0;
int i=0;
for(i=0;i<8;i++)
{
temp+=f((b-a)*X[i]/2.0+(b+a)/2.0)*A[i];//temp+=functi((b-a)*X[i]/2.0+(b+a)/2.0)*A[i];
}
temp=(b-a)*temp/2.0;
return temp;
}
double add(double a,double b,double (*pGauss)(double,double,double(*f)(double)))
{
int m,i=0,j=0;
double temp=0.0;
m=(int)((b-a)/epsilon3);
for(i=0;i<m;i++)
temp+=pGauss(a+(double)i*(b-a)/(double)m,a+(double)(i+1)*(b-a)/(double)m,functi);//Gauss(a+(double)i*(b-a)/(double)m,a+(double)(i+1)*(b-a)/(double)m,functi);
printf("OK!!!\n");
return temp;
}
void main(void)
{
printf("Please press any key to begin:\n");
printf("%18.14f\n",add(-1,1,Gauss}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -