Cathy-Chen258 发表于 2020-11-7 21:37:04

(C语言)如何把求三个整数最大值改成求三个带小数的实数最大值

#include <stdio.h>
int main()
{
        int max(int a,int b,int c);
        int a,b,c,d;
        scanf("%d %d %d",&a,&b,&c);
        d=max(a,b,c);
        printf("Max is %d\n",d);
        return 0;
}
int max(int x,int y,int z)
{
    int p;
    if(x>y)p=x;
    else p=y;
    int f;
    if(p>z)f=p;
    else f=z;
    return f;
}



如何改成求三个实数(带小数的)的最大值

(感谢论坛的网友们为小白解答问题^-^)

昨非 发表于 2020-11-7 21:49:06

#include <stdio.h>
int main()
{
        double max(double a, double b, double c);
        double a, b, c, d;
        scanf("%lf %lf %lf", &a, &b, &c);
        d = max(a, b, c);
        printf("Max is %f\n", d);
        return 0;
}
double max(double x, double y, double z)
{
        double p;
        if (x > y)p = x;
        else p = y;
        double f;
        if (p > z)f = p;
        else f = z;
        return f;
}

昨非 发表于 2020-11-7 21:49:43

满意的话给个最佳答案吧{:10_297:}

Cathy-Chen258 发表于 2020-11-7 21:57:08

昨非 发表于 2020-11-7 21:49


想问一下为什么要用double不用float?

昨非 发表于 2020-11-7 21:58:27

Cathy-Chen258 发表于 2020-11-7 21:57
想问一下为什么要用double不用float?

单精度和双精度的差别,都行的
只不过float的话,scanf里格式控制串“%f”

Cathy-Chen258 发表于 2020-11-7 22:00:35

昨非 发表于 2020-11-7 21:58
单精度和双精度的差别,都行的
只不过float的话,scanf里格式控制串“%f”

哦!所以用double的话scanf内用%lf是吧

昨非 发表于 2020-11-7 22:01:48

Cathy-Chen258 发表于 2020-11-7 22:00
哦!所以用double的话scanf内用%lf是吧

对的

Cathy-Chen258 发表于 2020-11-7 22:04:31

昨非 发表于 2020-11-7 22:01
对的

好的谢谢你呀{:5_110:}
页: [1]
查看完整版本: (C语言)如何把求三个整数最大值改成求三个带小数的实数最大值