结果为什么是68而不是69.4?

来源:5-14 综合练习

szu_zyf

2015-03-25 01:42

为什么结果是68,而不是69.4?

写回答 关注

4回答

  • 小肠杆君
    2015-03-25 02:36:44
    已采纳

    你确定你的代码能正常运行?

    在你定义函数cost()时,就是错误的。首先是返回值不对,你的返回值是double类型的,但是你没有使用返回值修饰符,所以默认的是int型。其次,函数的参数列表里面是形参列表,需要给定数据类型,你这里只有形参名,没有形参类型。

    #include <stdio.h>
        int time;
        int distance;
        float price;
        float cost1;
        float cost_total;
        float cost(int time)
        {
        	if(time <= 23 && time > 5)
    	    price = 2.3;
        	else 
    	    price = 2.3*1.2;
    	cost1 = 13 + price * (distance - 3) + 1;
        	printf("%d点的打车费为%f\n",time,cost1);
    	return cost1;
        }
    int main()
    {
        distance = 12;
        cost_total = cost(9) + cost(18);
        printf("小明今天打车的总费用为%f",cost_total);
        
        return 0;
    }

    针对你的代码进行了稍微的排版

  • qq_一梦浮生丶_0
    2016-05-05 14:47:51

    #include <stdio.h>


    int Charge(int t,int m)

    {

        float sum;  //打车费

        const float p = 2.3;  //单价

        const float q = 13; //起步价

        if(m <= 3)  //判断距离m<=3时的2种情况。

        

        {

            if(5<t || t<23)

        

            {   sum =q ;

                sum ++;

            

                return  sum;

            }

            else

        

            {    sum = q + m*0.2*p;

                sum ++;

                return sum;

                

            }

        }

        if(m >3) //判断距离m>3时的2种情况。

        {

            if(5<t || t<23)

        

            {   sum =q + p * (m-3);

                sum ++;

                return  sum;

            }

            else

        

            {    sum = q + p * (m-3) +  p * 0.2 * m;

                sum ++;

                return sum;

            }       

                

        }  

           

    }


    int main()

    {

        int x = 9;

        int y = 6;

        int z = 12;

        float am = Charge(x,z);

        float pm = Charge(y,z);

        float money = am + pm;

        printf("小明每天的打车的总费用是:%.2f\n",money);

        return 0;

    }


  • szu_zyf
    2015-03-25 10:21:00

    谢谢老王,现在懂了   之前的程序运行结果是:

    9点的打车费为34.700000
    18点的打车费为34.700000
    小明今天打车的总费用为68.000000

  • 小肠杆君
    2015-03-25 02:40:50
    #include <stdio.h>
    // 变量定义
    int time;
    int distance;
    float price;
    float cost1;
    float cost_total;
    
    // 子函数定义
    float cost(int time)
    {
        if(time <= 23 && time > 5)
            price = 2.3;
        else 
            price = 2.3*1.2;
        cost1 = 13 + price * (distance - 3) + 1;
        printf("%d点的打车费为%f\n",time,cost1);
        return cost1;
    }
    
    // 主程序
    int main()
    {
        distance = 12;
        cost_total = cost(9) + cost(18);
        printf("小明今天打车的总费用为%f",cost_total);
         
        return 0;
    }


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926207 学习 · 20797 问题

查看课程

相似问题