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

请各位看看我的小程序哪不对。。

#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;

}

正在回答

2 回答

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;

}

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

qq_1284 提问者

感谢大神,小弟好好努力!
2015-08-04 回复 有任何疑惑可以回复我~

我试了一下,在taxi函数里 必须是money_1  而 不可以是money  ,否则程序运行的结果就是0.000000

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

举报

0/150
提交
取消

请各位看看我的小程序哪不对。。

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