问答详情
源自:5-14 综合练习

我这个有什么毛病?为什么输出总是12

#include <stdio.h>

int money(int i,int n)

{

    float price;

    if(n>3)//判断路程是否大于3公里

    {

        if(i>=5&&i<23)//判断是否为白天

        {

            price=14+(n-3)*2.3;

        }

         else

        {

            price=14+(n-3)*2.3*1.2;

        }   

    }

    else {

        price=14;

         }

         return price;

}

int main()

{

float price;

    price=money(24,4)+money(6,12);

    printf("%d",price);

    return 0;

}


提问者:lscoder 2018-11-03 23:28

个回答

  • 慕粉0247298809
    2018-11-05 19:03:05
    已采纳


    #include <stdio.h>


    float money(float i,float n)   //函数类型不对 ,  后面两个传入值可以用int,因为会被强制转换,但最好还是也用float类型,因为时间不会都是整数;


    {


        float price;


        if(n>3)//判断路程是否大于3公里


        {


            if(i>=5&&i<23)//判断是否为白天


            {


                price=14+(n-3)*2.3;


            }


             else


            {


                price=14+(n-3)*2.3*1.2;


            }   


        }


        else {


            price=14;


             }


             return price;


    }


    int main()


    {


    float price,s,up;

    price=money(24,4)+money(6,12);

        printf("%f",price);  //输出的不是整数, 要用%f


        return 0;


    }


  • 就咪1
    2018-11-13 19:19:38

    #include<stdio.h>

    int main()

    {

    printf("不知道");

    return 0;

    }