為什么第一種情況不行,第二種可以?
為什么第一種情況不行?發現實參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);
??? }
2019-10-30
你第二種的確可以運行 但是運行結果是錯的,第一種時間沒定義好