慕粉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;
}
同学你的代码有如下的几处错误需要修改:
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
C语言入门
927969 学习 · 21542 问题
相似问题