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

本文介绍了一个使用C语言实现的数值积分程序。该程序提供了五种不同的积分函数计算方式,并允许用户选择进行计算。每种方法通过将指定区间分成多个小区间来近似积分值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值