#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; }
同学你的代码有如下的几处错误需要修改:
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
#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