为了账号安全,请及时绑定邮箱和手机立即绑定

请问这代码是否正确

#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 回答

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

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 


0 回复 有任何疑惑可以回复我~
#1

慕粉4105356 提问者

非常感谢这位大神
2017-01-31 回复 有任何疑惑可以回复我~
#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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

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

进入课程

请问这代码是否正确

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信