#include<stdio.h>
int taxi(int distance,int hour)
{
int money;
if(hour<=5 || hour>=23);
{
money=(distance-3)*2.3*1.2+1+13;
return money;
}
else
{
money=(distance-3)*2.3+1+13;
return money;
}
}
int main()
{
int money;
int moneyInAll=taxi(12,24)+taxi(12,7);
printf("%d\n",money);
return 0;
}
money 是int 型, int型数据经过和小数一起运算后会自动转成float型, 存储数据类型错了, 把money改成double或者 float
错误处挺多的,不一一讲了,自己对着看下
#include<stdio.h>
double taxi(int distance,int hour)
{
double money_1; // 可以不改成_1 局部变量与全局变量同名时,用到局部部分,就屏蔽外部变量
if(hour<=5 || hour>=23)
{
money_1=(distance-3)*2.3*1.2+1+13;
return money_1;
}
else
{
money_1=(distance-3)*2.3+1+13;
return money_1;
}
}
int main()
{
double money=0;
double moneyInAll=taxi(12,24)+taxi(12,7);
printf("%f\n",moneyInAll); //这里你并没有用moneyInAll,输出的值是money,如果不改
//money也没赋值的话,就会输出一大串数字,并不能得到准确的值。
return 0;
}
我试了一下,在taxi函数里 必须是money_1 而 不可以是money ,否则程序运行的结果就是0.000000