请问一下大佬们,为啥输入double类型的数用%f而不是%lf会出错
如果为%f时输出的全是0.在gdb的时候我发现输入的积分下限b=4是显示的是很奇怪的指数,改成%lf就正确了,想请教一下具体原因捏,谢谢啦{:5_96:}
#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;
}
知道用 %lf 能正确显示,那就用它不就完了。 这就是语法规则,%f 用于输入 float 类型,%lf 用于输入 double 类型。 tommyyu 发表于 2022-11-28 16:23
这就是语法规则,%f 用于输入 float 类型,%lf 用于输入 double 类型。
谢谢啦{:5_95:} jackz007 发表于 2022-11-28 16:15
知道用 %lf 能正确显示,那就用它不就完了。
好吧哈哈哈哈{:5_96:}
页:
[1]