為什么第一種情況不行,第二種可以?
為什么第一種情況不行?發(fā)現(xiàn)實(shí)參char傳不進(jìn)Shoufei函數(shù),只有前面的if是可以判別到的,輸入滿(mǎn)足兩個(gè)else?if條件的字符最后輸出的值都是0,后來(lái)想了想就用了第二種方法,難道不能傳char類(lèi)型的參數(shù)進(jìn)函數(shù)里?
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("請(qǐng)您輸入公里數(shù)和打車(chē)時(shí)間(白天:凌晨5點(diǎn)到18點(diǎn),晚上:18點(diǎn)到23點(diǎn),深夜:23點(diǎn)到第二天凌晨5點(diǎn))\n");
??? scanf("%d%s%*c",&Gongli,&Day);
??? double c=Shoufei(Gongli,Day);
??? printf("您需要支付的費(fèi)用為:%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("請(qǐng)您輸入公里數(shù)和打車(chē)時(shí)間(白天:凌晨5點(diǎn)到18點(diǎn),晚上:18點(diǎn)到23點(diǎn),深夜:23點(diǎn)到第二天凌晨5點(diǎn))\n");
??? scanf("%d%s%*c",&Gongli,&Day);
??? if(Day="白天"){
??????? d=0;
??? }
??? if(Day="深夜"){
??? d=1;
??? }
??? double c=Shoufei(Gongli,d);
??? printf("您需要支付的費(fèi)用為:%lf",c);
??? }
2019-10-30
你第二種的確可以運(yùn)行 但是運(yùn)行結(jié)果是錯(cuò)的,第一種時(shí)間沒(méi)定義好