double类型和int类型区别

问题遇到的现象和发生背景
#include <stdio.h>
double max(double x,double y,double z)
{
    double a;
    a=x>y?x:y;
    a=a>z?a:z;
    return a;
}
int main ()
{
    double a,b,c;
    double m;
    scanf("%d%d%d",&a,&b,&c);
    m=1.0*max(a,b,c)/(max(a+b,b,c)*max(a,b,b+c));
    printf("%.3lf",m);
    return 0;
}


a,b,c定义为double类型输出错误

img


而把a,b,c定义成int类型就可以,这是为什么?

img

用代码块功能插入代码,请勿粘贴截图

因为你输入a,b,c 的时候用的是%d。这个的意思就是输入整数! double类型请使用 %lf 望采纳!

%l类型
%dint
%ffloat
%lfdouble

你定义的a,b,c是double类型,后面不应该用%d,可以采用%lf。希望我的帮助能够帮到你,望采纳