[問題] 關於C++函式的問題

看板C_and_CPP作者 (FreeBlizzard)時間11年前 (2012/10/28 15:05), 編輯推噓2(2011)
留言13則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Visual C++ 2010 問題(Question): 一題c++函式的問題,我這樣打完之後 VC++ 2010 把我最後的return calculateCharges的 calculateCharges 畫紅線了.... 可是我其他的函式作業也這樣寫ㄟ 也不有錯阿=ˇ= 不知哪裡錯了... 另外我倒數第7行的 ceil 要做無條件進位的 這樣對嗎?? 感謝回答阿~!! 餵入的資料(Input): hour1 = 1.5 hour2 = 4.0 hour3 = 24.0 預期的正確結果(Expected Output): charge1 = 2.00 charge2 = 2.50 charge3 = 10.00 totalhour =29.5,totalcharge = 14.50 錯誤結果(Wrong Output): 無法執行.... 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> #include <stdlib.h> #include <math.h> float calculateCharges(float , float ); int main(){ float hour1,hour2,hour3,totalhour; float charge1,charge2,charge3,totalcharge; puts("請輸入三位客人的停車時間:"); printf("第一位客人:"); scanf("%f", &hour1); printf("charge is%f\n", calculateCharges(hour1, charge1)); printf("第二位客人:"); scanf("%f", &hour2); printf("charge is%f\n", calculateCharges(hour2, charge2)); printf("第三位客人:"); scanf("%f", &hour3); printf("charge is%f\n", calculateCharges(hour3, charge3)); totalhour = hour1 + hour2 + hour3; totalcharge = charge1 + charge2 + charge3; printf("total hour is:%f\n",totalhour); printf("total charge is:%f\n",totalcharge); system("pause"); return 0; } float calculateCharges(float hours, float charge){ float hours; float charge; if(hours <= 3){ charge = 2; } else if(hours > 3 && hours != 24){ charge = (ceil (hours) - 3)*0.5 + 2; } else if(hours = 24){ charge = 10; } return calculateCharges; } 程式說明:做 停車收費的 輸入hours1,hours2,hours3 會得到charges1,charge2,charge3 totalhours totalcharges 自己做一個函式 然後會重複做 回傳那些值 我做的函式較 calculateCharges -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.189.59 ※ 編輯: free94531 來自: 114.32.189.59 (10/28 15:06)

10/28 15:07, , 1F
float hours ,charge重複定義?
10/28 15:07, 1F
那重複定義是要把最後的float hours;float charge; 改掉嗎??好像也不行ㄟ ※ 編輯: free94531 來自: 114.32.189.59 (10/28 15:10)

10/28 15:10, , 2F
calculateCharges是函數指標,可是你的return必須是
10/28 15:10, 2F

10/28 15:10, , 3F
float........
10/28 15:10, 3F

10/28 15:11, , 4F
((這樣講好像也怪怪的@.@
10/28 15:11, 4F

10/28 15:26, , 5F
寫個struct吧
10/28 15:26, 5F

10/28 15:43, , 6F
你需要一本入門書...
10/28 15:43, 6F
我現在就在看了... 那是哪裡打錯了呢? 謝謝大大阿 ※ 編輯: free94531 來自: 114.32.189.59 (10/28 15:45)

10/28 15:46, , 7F
稍微看一下 你想表達的是不是return charge
10/28 15:46, 7F

10/28 16:11, , 8F
我這樣問原PO好了: calculateCharges 是你寫的這個函式
10/28 16:11, 8F

10/28 16:12, , 9F
那你寫 return calculateCharges; 是「想要」做什麼?
10/28 16:12, 9F
應該是輸入時間 將時間傳到函式裡面計算 算好之後 將算出的錢的值 回傳到main裡面輸出到螢幕 ※ 編輯: free94531 來自: 114.32.189.59 (10/28 16:20) ※ 編輯: free94531 來自: 114.32.189.59 (10/28 16:22) 我知道問題點了 感謝各位大大的回答<(_ _)> 還有強者我朋友XD ※ 編輯: free94531 來自: 114.32.189.59 (10/28 16:53)

10/28 17:10, , 10F
float f(float x) { return f; } 這樣不會有問題才怪
10/28 17:10, 10F

10/28 17:11, , 11F
真是好奇你「其他的函式作業」怎麼寫的
10/28 17:11, 11F
就該好我要傳的值 跟函式名稱一樣...

10/28 17:4, , 12F
...劃紅線之前應該還有個shadow啥重複定義的
10/28 17:4, 12F
是阿 我重複定義hour,charge了 ※ 編輯: free94531 來自: 114.32.189.59 (10/28 20:10)

10/28 21:28, , 13F
小明養的狗通常不會再取名叫小明。function也是一樣。
10/28 21:28, 13F
文章代碼(AID): #1GZDb6Q4 (C_and_CPP)