c语言 指向函数的指针作函数参数

来源:互联网 发布:自然连接 sql 编辑:程序博客网 时间:2024/05/19 13:23
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
float integral(float a,float b,float (*fun)(float,float));
float f1(float,float);
float f2(float,float);
float f3(float,float);
float f4(float,float);
float f5(float,float);
int n;
float x=5.4;
float y=9.8;
printf("please choose 1,2,3,4or5:");
scanf("%d",&n);
if(n==1)
integral(x,y,f1);
else if(n==2)
integral(x,y,f2);
else if(n==3)
integral(x,y,f3);
else if(n==4)
integral(x,y,f4);
else if(n==5)
integral(x,y,f5);
system("pause");
}
float integral(float a,float b,float (*fun)(float,float))
{
float result;
result = (*fun)(b,a);
printf("%f",result);
}
float f1(float b,float a)
{
int n=10000;
int i;
float s=0;
float h=(b-a)/n;
for(i=0;i<n;i++)
{
s=s+h*(1+a+i*h);
}
return s;
}
float f2(float b,float a)
{
int n=10000;
int i;
float s=0;
float h=(b-a)/n;
for(i=0;i<n;i++)
{
s=s+h*(3+2*(a+i*h));
}
return s;
}
float f3(float b,float a)
{
int n=10000;
int i;
float s=0;
float h=(b-a)/n;
for(i=0;i<n;i++)
{
s=s+h*exp(a+i*h);
}
return s;
}
float f4(float b,float a)
{
int n=10000;
int i;
float s=0;
float h=(b-a)/n;
for(i=0;i<n;i++)
{
s=s+h*pow((1+a+i*h),2);
}
return s;
}
float f5(float b,float a)
{
int n=10000;
int i;
float s=0;
float h=(b-a)/n;
for(i=0;i<n;i++)
{
s=s+h*pow((a+i*h),3);
}
return s;
}
0 0
原创粉丝点击