2015-08-08 18 views
1

我必須創建一個計算機票費用的計劃。這是一個簡單的程序,但我沒有加入它,但每次運行它時,結果都會變成0.我的代碼中是否存在缺失?我是一名初學者,我會很感激任何關於改進我的代碼的建議。謝謝。C++機票費計算項目

#include <iostream> 
      using namespace std; 

      void main() { 

       int distance = 0; 
       int num_bags= 0; 
       int num_meals= 0; 
       double distance_price = distance * 0.15; 
       double bag_price = num_bags * 25.00; 
       double meal_price = num_meals * 10.00; 
       double total_airfare = 0.00; 


      cout << "CorsairAir Fare Calculator" << endl; 

      cout << "Enter the distance being travelled: " << endl; 
      cin >> distance; 

      cout << "Enter number of bags checked: " <<endl; 
      cin >> num_bags; 


      cout << "Enter the number of meals ordered: " << endl; 
      cin >> num_meals; 


      total_airfare = (distance_price + bag_price + meal_price); 


      cout << total_airfare; 




      } 
+2

您似乎認爲,一旦你寫的'雙distance_price =距離* 0.15;',現在每'時間distance'改變'distance_price'會奇蹟般地重新計算本身。不是這種情況。 –

+0

從技術上講,你的程序不合格,在C++規範中指定'main'總是返回一個'int'。 –

+0

我如何計算機票價格是如此簡單... ;-) –

回答

2

你的困惑是完全可以理解的 - 你缺少一塊就是當你分配一個變量,你在時間分配左側到右側在那一刻的結果。這不像代數,你說f(x) = x + 5f(x)總是無論x + 5是什麼。

因此,您在distance0(您剛初始化)時指定double distance_price = distance * 0.15。即使在您要求輸入並更改distance之後,distance_price仍然爲0

請求輸入後進行價格計算,一切都會正常工作。

1

您正在計算distance_pricebag_pricemeal_price具有默認值,即0與您從用戶獲取的值不同。

下面的代碼工作正常,你不會看到問題。

#include <iostream> 
    using namespace std; 
    // My compiler did not allow void main so used int main 
    int main() { 

    int distance = 0; 
    int num_bags= 0; 
    int num_meals= 0; 

    double distance_price ; 
    double bag_price ; 
    double meal_price; 
    double total_airfare; 

    cout << "CorsairAir Fare Calculator" << endl; 

    cout << "Enter the distance being travelled: " << endl; 
    cin >> distance; 

    cout << "Enter number of bags checked: " <<endl; 
    cin >> num_bags; 


    cout << "Enter the number of meals ordered: " << endl; 
    cin >> num_meals; 


    distance_price = distance * 0.15; 
    bag_price = num_bags * 25.00; 
    meal_price = num_meals * 10.00; 
    total_airfare = 0.00; 


    total_airfare = distance_price + bag_price + meal_price; 


    cout << total_airfare; 
    return 0; 
    } 

結果

CorsairAir Fare Calculator 
Enter the distance being travelled: 
200 
Enter number of bags checked: 
2 
Enter the number of meals ordered: 
2 
100