請問這代碼是否正確
#include?<stdio.h> double?money double?price(mile,time) { ????if(mile<=3) ????{ ????????money=13; ????????printf("起步價%d元",?money); ????}???? ????else?(time>=23&&time<5&&mile>3) ????{ ????????money=14+2.3*(mile-3)*1.2; ????????printf("總費用為%f元",?money); ????} ???? } int?main() { ????price=price(mile=12,time=9)+price(mile=12,time=18); ????printf("小明每天打車的總費用為%f元",price); ????return?0; }
2017-01-30
同學你的代碼有如下的幾處錯誤需要修改:?
1、第2行:money變量的定義需要在price()函數內
2、第3行price()函數的返回值類型是double,那么在函數中要有return語句?
3、第3行中mile和time形式參數需要有參數類型,為int?
4、第10行中是else語句,也就是對于mile>3的情況說明的,后面的&&mile>3不需要再寫;并且這種寫法也是錯誤的,需要在else語句中嵌套if-else語句來對time進行判斷,否則按照你寫的情況來說的話沒有考慮在白天打車距離超過3公里的情況?
5、在第8行中,題目總說每次乘車加收1元錢的燃油附加稅,那么這里的13也是需要再+1的?
6、在第20行,傳入參數的時候不再需要寫mile和time,按順序傳入需要的參數即可mile=12進行的是賦值操作
7、在第20行,price自變量在使用之前未定義,應該先定義double price;并且自變量的定義和函數名稱的定義重復了,在編譯時是無法通過的
8、在第21行中可以對占位符的float設置其輸出的小數點位數%.2f?
2017-01-30
如上代碼修改之后可正確輸出69.40