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;
}
#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;
}
相关文章推荐
- [C/C++ 开发] 中如何获取数组的长度
- C++隐式转换和显示转换
- C++常见笔试题
- C++使用模板类实现任意类型switch和变量case
- 常用的C++库总结
- C++/C# 托管扩展 更改概要 [转]
- C++头加using namespace std的原因
- [设计模式][C++]单例模式
- 【Best Time to Buy and Sell Stock III 】cpp
- windows上搭建sublime cpp运行环境
- C++拷贝构造函数详解
- 为什么要学习和使用C语言?
- C++9.3容器定义的类型 size_type 、容器执行的操作 insert
- C语言再学习——数组
- C语言再学习——数据类型
- C语言再学习——分支结构
- C语言再学习——常量和变量
- C语言再学习——C语言中进制之间的转换
- C++ goto 在g++ 编译时出现 crosses initialization 和 jump to label xxx [-fpermissive] 错误
- C/C++文件中函数互相调用