您的位置:首页 > 编程语言 > C语言/C++

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

2015-06-02 15:47 417 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: