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

来源:5-14 综合练习

qq_1284

2015-08-03 23:10

#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回答

  • sca11
    2015-08-04 00:02:37
    已采纳

    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;

    }

    qq_128...

    感谢大神,小弟好好努力!

    2015-08-04 19:47:35

    共 1 条回复 >

  • qq_1284
    2015-08-04 20:08:10

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题