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

为什么第一种情况不行,第二种可以?

为什么第一种情况不行?发现实参char传不进Shoufei函数,只有前面的if是可以判别到的,输入满足两个else if条件的字符最后输出的值都是0,后来想了想就用了第二种方法,难道不能传char类型的参数进函数里?


int Gongli;

    char Day;

   double Shoufei(int a,char b ){

   double money;

   if(a<=3){

    money=14;

 

   }

    else if(a>3&&(b="白天"||b="晚上")){

        money=14+2.3*(a-3);

    }

    else if(a>3&&b="深夜"){

        money=14+2.76*(a-3);

        printf("成功\n");

    }

    return money;

   }

 

    int main(){

    printf("请您输入公里数和打车时间(白天:凌晨5点到18点,晚上:18点到23点,深夜:23点到第二天凌晨5点)\n");

    scanf("%d%s%*c",&Gongli,&Day);

    double c=Shoufei(Gongli,Day);

    printf("您需要支付的费用为:%lf",c);

 

    }


可以的情况:

int d;
    int Gongli;
    char Day;
   double Shoufei(double a,int e ){
   double money;
   if(a<=3){
    money=14;

   }
    else if(a>3&&e==0){
        money=14+2.3*(a-3);
    }
    else if(a>3&&e==1){
        money=14+2.76*(a-3);
        printf("成功\n");

    }
 return money;
   }

    int main(){

    printf("请您输入公里数和打车时间(白天:凌晨5点到18点,晚上:18点到23点,深夜:23点到第二天凌晨5点)\n");
    scanf("%d%s%*c",&Gongli,&Day);
    if(Day="白天"){
        d=0;
    }
    if(Day="深夜"){
    d=1;
    }
    double c=Shoufei(Gongli,d);
    printf("您需要支付的费用为:%lf",c);

    }

提问者:qq_慕无忌3098716 2019-10-25 11:36

个回答

  • 慕婉清1011996
    2019-10-30 16:50:54

    你第二种的确可以运行 但是运行结果是错的,第一种时间没定义好