|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如果为%f时输出的全是0.在gdb的时候我发现输入的积分下限b=4是显示的是很奇怪的指数,改成%lf就正确了,想请教一
下具体原因捏,谢谢啦
- #include <math.h>
- #include <stdio.h>
- double g(double);
- double count1(double a,double b,int n,double (*f)(double));
- double count2(double a,double b,int n,double (*f)(double));
- double count3(double a,double b,int n,double (*f)(double));
- int main()
- {
- int n;
- double a=0,b=0;
- printf("输入积分下限:");
- scanf("%lf",&a);
- printf("输入积分上限:");
- scanf("%lf",&b);
- printf("输入分割区间:");
- scanf("%d",&n);
- double (*f)(double);
- f=g;
- double result=count1(a,b,n,f);
- printf("下限面积是:%f\n",result);
- printf("上限面积是:%f\n",count2(a,b,n,f));
- printf("梯形面积是:%f\n",count3(a,b,n,f));
- return 0;
- }
- double g(double x)
- {
- return x*x;
- }
- double count1(double a,double b,int n,double (*f)(double))
- {
- double s=0;
- int i;
- double k=0;
- k=(b-a)/n;
- for(i=0;i<n;i++)
- {
- s=s+f(a+i*k);
- }
- return s*k;
- }
复制代码
这就是语法规则,%f 用于输入 float 类型,%lf 用于输入 double 类型。
|
|