szu_zyf
2015-03-25 01:42
为什么结果是68,而不是69.4?
你确定你的代码能正常运行?
在你定义函数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; }
针对你的代码进行了稍微的排版。
#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;
}
谢谢老王,现在懂了 之前的程序运行结果是:
9点的打车费为34.700000
18点的打车费为34.700000
小明今天打车的总费用为68.000000
#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语言入门
926207 学习 · 20797 问题
相似问题