2011-07-24 108 views
0

我對我的C++作業有問題。C++字符串和數組

編寫一個程序來分析過去10天的汽油價格。首先,要求用戶輸入價格。然後執行以下操作: (a)計算並顯示前5天的平均價格和第5天的平均價格 (b)比較兩個平均價格。確定並報告哪一個更高(或者它們是相同的)。 (c)將每天的價格(第一天除外)與前一天的價格進行比較。確定它是否變得更高,更低或保持不變。計數並報告價格高於,低於和等於前一天價格的天數。

我不知道如何比較如何前五天與過去五天進行比較,C部分我完全靠....

失去我不會找人爲我做我的作業,但是朝着正確的方向努力將是一個很大的幫助!

這裏是我到目前爲止做出:

#include <iostream> 
#include <fstream> 
using namespace std; 


int main() 
{ 
double gasPrice[10]; 
double firstFive = 0.0; 
double lastFive = 0.0; 
double ffAvg = 0.0; 
double lfAvg = 0.0; 

for (int x = 0; x < 10; x = x + 1) 
{ 
    gasPrice[x] = 0.0; 
} 

cout << "You will be asked to enter daily gas prices for 10 days."<< endl; 

ofstream gasprice; 
gasprice.open("gasprice.txt", ios::app); 

if (gasprice.is_open()) 
{ 
for (int x = 0; x < 10; x = x + 1) 
{ 
    cout << "Enter the gas price " << x+1 << ": "; 
    getline(cin, gasPrice[x]; 
} 




if (ffAvg > lfAvg) 
{ 
    cout << "The first five days have a lower gas price " << ffAvg << lfAvg << endl; 
    } 

else if (ffAvg < lfAvg) 
{ 
     cout << "The last five days have a lower gas price " << ffAvg << lfAvg << endl; 
    } 

system("pause "); 
return 0; 
} 
+1

家庭作業需要被標記爲SO上的家庭作業。我爲你重新標記了它。 – Paulpro

+1

@PaulPRO:不,它確實沒有,它確實不應該。與家庭作業有關的一個好問題應該與一個與作業無關的好問題區分開來。 –

+4

@James McNellis,重要的是人們知道他們在幫助家庭作業問題,所以他們可以幫助而不是僅僅給出最終答案。 – Paulpro

回答

0

我sugest做如下:

double average1=0.0; 
for(int i=0;i<5;++i) { 
    average1 += values[i]; 
} 
average1/=5.0; 

double average2=0.0; 
for(int i=5;i<10;++i) { 
    average2 += values[i]; 
} 
average2/=5.0; 

此外,看一看的std ::載體,它可以幫助你進一步練習: http://www.cplusplus.com/reference/stl/vector/

1

閱讀要求就像他們是一個描述,而不是一個計算機公式。當第一次學習時,它會變得壓倒性的,我們會被在另一個環境中自然產生的東西所淹沒。

無論如何,你不是要比較個別的日子,而是平均的日子。所以你首先需要計算前五天的平均值和後五天的平均值,然後再比較。

對於問題的第二部分,您總計的聚合器是我會給你的。

希望這會有所幫助。

0

您應該首先計算第一天和最後5天的平均值。平均值由總和除以項目數量來定義。所以你的平均值將是(gasPrice[0] + gasPrice[1] + gasPrice[2] + gasPrice[3] + gasPrice[4])/5.0

你可能應該在一個類似於你獲得輸入的循環中進行這個計算。該循環只能迭代5次。

1

分解到一系列階段的問題:首先,你需要從用戶那裏得到10個輸入價格,並將其存儲在大小10

下一個數組,你需要計算的平均價格爲前五天(即在你的數組的索引值0-4),並將其存儲在ffAvg,你可以做到這一點使用下面的簡單for循環:

double sum; 
for(int i = 0; i < 5; i++) 
{ 
     sum += gasPrice[i]; 
} 
double ffAvg = sum/5; 

然後你可以在做這個第2個5天,將平均值存儲在lfAvg中。

你的任務的下一個部分是比較平均,則可以使用ifelse if語句,例如這樣做,如果你想比較的數字,num1num2你不妨做到以下幾點:

if(num1 > num2) 
{ /* Do something */ } 

這將比較num1num2,如果num1大於num2它將執行大括號中的代碼。

要做最後的比較,你可以簡單地結合我們每天所做的事情。嘗試嘗試各種不同的方法,因爲這可以幫助您瞭解更多信息。

希望這可以幫助你! :)

編輯:我也注意到,你還沒有關閉很多你的護腕,你必須這樣做,所以編譯器可以正常工作。每{必須有相應的},否則編譯器應該拋出錯誤,而不是編譯。