sinx加expx定积分计算c语言,写一个定积分的通用函数,分别求sinx,cosx,e^x.

/**************************************************************

* Copyright (c) 2013, 西华师范大学计算机学院

* All rights reserved.

* 作 者: 曾舜尧

* 完成日期:2013 年 05 月 12 日

* 工 具:VC6.0

*

* 输入描述:

* 问题描述:写一个定积分的通用函数,分别求sinx,cosx,e^x.

* 程序输出:

* 问题分析:此题写一个通用函数,无非是用一个函数调用fun1,fun2……等,

* 何不就用switch来匹配,再直接调用……

* 算法设计:略

**************************************************************/

#include

#include

#include

#include

/*#define Density 0.00001*/

static double Density=0.0000001;/*定义全局变量 Density(精度)并赋值值*/

int main()

{

void fun1(double a,double b);

void fun2(double a,double b);

void fun3(double a,double b);

int check(int sel,double a,double b);

void info();

int sel;

double a,b;

char ch;

info();

printf("精度默认为0.0000001,是否设置精度(y/n)?:");

scanf("%c",&ch);

if (ch=='y'||ch=='Y')

{

printf("\n请输入您的精度:");

scanf("%lf",&Density);

}

do

{

printf("\n请输入您选择的番号、下线和上线:");

scanf("%d%lf%lf",&sel,&a,&b);

if(check(sel,a,b))

{

switch(sel)

{

case 1:fun1(a,b);break;

case 2:fun2(a,b);break;

case 3:fun3(a,b);break;

//default :printf("输入错误!\n");

}

}

else

{ printf("\n输入有误,请检查后再次输入。。。!\n");}

printf("\n是否继续(y/n):");

ch=' ';/*此处清空ch,以免影响for语句*/

for (;ch!='N'&&ch!='y'&&ch!='Y'&&ch!='n';ch=getchar());

printf("\n");/*为了便于查看*/

}while((ch=='y')||(ch=='Y'));

printf("程序结束!感谢您的光顾!\n");

getch();

system("pause");

return 0;

}

/*sinxdx[0~1]*/

void fun1(double a,double b)

{

double result=0;

for (;a<=b;a+=Density)

result=result+sin(a) * Density;

printf("理论值为:%.2lf\n",result);

return;

}

/*cosxds[0~1]*/

void fun2(double a,double b)

{

double result=0;

for (;a<=b;a+=Density)

result=result+cos(a) * Density;

printf("理论值为:%.2lf\n",result);

return ;

}

/*e^xdx[0~1]*/

void fun3(double a,double b)

{

double result=0;

for (;a

result=result+exp(a);

printf("理论值为:%.2lf\n",result);

return ;

}

int check(int sel,double a,double b)

{

if ((sel==1)||(sel==2)||(sel==3))

{

if(b-a>Density)

return 1;

else

return 0;

}

else

return 0;

}

void info()

{

printf("本程序可以计算下列3个函数的定积分\n");

printf("函数1\t函数2\t函数3\nsinx\tcosx\te^x\n");

printf("示例:\n");

printf("\t计算sinx从0到1的定积分,\n\t输入:1 0 1\n");

printf("注:下限应至少比上限小%.*f\n",Density);

return ;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值