请问这代码是否正确

来源:5-14 综合练习

慕粉4105356

2017-01-30 14:45

#include <stdio.h>
double money
double price(mile,time)
{
    if(mile<=3)
    {
        money=13;
        printf("起步价%d元", money);
    }    
    else (time>=23&&time<5&&mile>3)
    {
        money=14+2.3*(mile-3)*1.2;
        printf("总费用为%f元", money);
    }
    
}

int main()
{
    price=price(mile=12,time=9)+price(mile=12,time=18);
    printf("小明每天打车的总费用为%f元",price);
    return 0;
}


写回答 关注

2回答

  • 任沛
    2017-01-30 19:10:53
    已采纳

    同学你的代码有如下的几处错误需要修改: 

    1、第2行:money变量的定义需要在price()函数内

    2、第3行price()函数的返回值类型是double,那么在函数中要有return语句 

    3、第3行中mile和time形式参数需要有参数类型,为int 

    4、第10行中是else语句,也就是对于mile>3的情况说明的,后面的&&mile>3不需要再写;并且这种写法也是错误的,需要在else语句中嵌套if-else语句来对time进行判断,否则按照你写的情况来说的话没有考虑在白天打车距离超过3公里的情况 

    5、在第8行中,题目总说每次乘车加收1元钱的燃油附加税,那么这里的13也是需要再+1的 

    6、在第20行,传入参数的时候不再需要写mile和time,按顺序传入需要的参数即可mile=12进行的是赋值操作

    7、在第20行,price自变量在使用之前未定义,应该先定义double price;并且自变量的定义和函数名称的定义重复了,在编译时是无法通过的

    8、在第21行中可以对占位符的float设置其输出的小数点位数%.2f 


    慕粉4105...

    非常感谢这位大神

    2017-01-31 18:04:29

    共 1 条回复 >

  • 任沛
    2017-01-30 19:12:11
    #include <stdio.h>
    double cost(int mile,int time)
    {
    	double money;
        if(mile<=3)
        {
            money=13+1;
    	}    
        else
        {
        	if(time>=23&&time<5)
            	money=14+2.3*(mile-3)*1.2;
            else
    			money= 14+2.3*(mile-3);
        }
        return money; 
         
    }
    int main()
    {
    	double price;
        price=cost(12,9)+cost(12,18);
        printf("小明每天打车的总费用为%.2f元",price);
    	return 0;
    }

    如上代码修改之后可正确输出69.40

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题