鱼C论坛

 找回密码
 立即注册
查看: 1874|回复: 4

[已解决]请问一下大佬们,为啥输入double类型的数用%f而不是%lf会出错

[复制链接]
发表于 2022-11-28 16:06:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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;
}
最佳答案
2022-11-28 16:23:03
这就是语法规则,%f 用于输入 float 类型,%lf 用于输入 double 类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-28 16:15:41 | 显示全部楼层
        知道用 %lf 能正确显示,那就用它不就完了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 16:23:03 | 显示全部楼层    本楼为最佳答案   
这就是语法规则,%f 用于输入 float 类型,%lf 用于输入 double 类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 18:06:31 | 显示全部楼层
tommyyu 发表于 2022-11-28 16:23
这就是语法规则,%f 用于输入 float 类型,%lf 用于输入 double 类型。

谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 18:06:51 | 显示全部楼层
jackz007 发表于 2022-11-28 16:15
知道用 %lf 能正确显示,那就用它不就完了。

好吧哈哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-20 19:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表