为什么第一种情况不行,第二种可以?
为什么第一种情况不行?发现实参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);
}