问答详情
源自:5-14 综合练习

求学霸帮忙看看吧,不知道是标点,还是括号原因无法运算啊

#include <stdio.h>

int cost(int a,int b)

{   if(3>=b>0){

  float result=14;}

else(5>a||a>=23)

    {float result=14+2.3*(b-3)*1.2; }if(23>a>=5)

    { float result=14+2.3*(b-3); }

    return result; }

int main()

float money=cost(9,12)+cost(18,12);

    printf("小明每天打车的总费用:%f",money);

    return 0;

}/*In function 'cost':

 error: expected ';' before '{' token

 warning: no newline at end of file这是出错的地方我也不懂哪里错了*/


提问者:lolipop漫 2015-07-19 23:57

个回答

  • kkkbbb
    2015-07-20 22:57:13
    已采纳

    对了还有else是不能用来判断的,他是否则的意思,应该写成这样:

    …………

    else

    if(5>a||a>=23)

        {float result=14+2.3*(b-3)*1.2; }

    if(23>a>=5)

        { float result=14+2.3*(b-3); }

        return result; }

    …………

  • kkkbbb
    2015-07-20 22:52:07

    你#include后面为什么要加空格呢,哪个老师教你的

  • Fayne丶VALSK
    2015-07-20 10:48:00

    if多重结构只要根据逻辑顺序写或嵌套一般都没有问题,关于float result首先你在代码中出现了很多次,其次你在if-else语句中定义的result的作用范围并不到return result;这里~,所以应该在函数一开始就定义这个变量。不知道解释得清不清楚= =

  • lolipop漫
    2015-07-20 00:16:04

    我知道原因了,首先要把第二个else改成if,第二个if改成else。然后把int cost,改成float,不然会变成整数型,然后输出68.。同时在开头阶段添加float result,定义变量。来个人说明下,if多重结构,else和if顺序错会出错吗,还有为什么要定义float result;