c语言入门5-14综合练习的问题?

#include <stdio.h>

float sum;

int z(int x,int y)

{   

    float mg;

    float price;

    if (y>3)

    {

        if (x>=23||x<=5)

        {

        mg=(y-3)*2.3*1.2;

        }

        else 

        {

        mg=(y-3)*2.3;

        }

    }

    else

    {

        mg=0;

    }

    price=14+mg;

    return price;

}

int main()

{

    sum=z(9,12)+z(18,12);

    printf("小明每天打车费用为%f",sum);

    return 0;

}

为什么我的输出是68.000000。后面的小数位不见了。

胡不归_
浏览 1578回答 3
3回答

进击的小喵呜

z返回值是int

DOUBLE_l

函数返回值类型是 int

xhm_hm

int z(int x,int y)的函数类型是 int,所以在sum=z(9,12)+z(18,12);调用后返回值就是int。可以把int z(int x,int y)改为float z(int x,int y)就行了。
打开App,查看更多内容
随时随地看视频慕课网APP