2011-07-24 16 views
0

C++の宿題に関する質問に問題があります。C++の文字列と配列

過去10日間のガソリン価格を分析するプログラムを作成します。まず、ユーザーに価格を入力するように依頼します。 (a)最初の5日間の平均価格と2日目の平均価格を計算して表示する (b)2つの平均価格を比較します。どちらが高いか(または同じか)を決定して報告します。 (c)毎日の価格(1日を除く)を前日の価格と比較します。それが高くなったのか、低くなったのか、あるいは同じままになったのかを判断する。価格が前日の価格よりも高い、低い、そして同じ日数を数えて報告します。

私は誰かに探していないよ、私は上....

完全に失わだ最後の5日間で、最初の5日間比較する方法を比較するかどうかはわかりませんし、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

宿題には宿題が付いている必要があります。私はあなたのためにそれを再タグ付けしました。 – 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

コンピュータの数式ではなく説明のような要件を読んでください。初めて何かを学ぶときには圧倒的になり、別の環境では自然になることで溺れてしまいます。

とにかく、日数を個別に比較するのではなく、日数を平均してください。したがって、まず最初の5つのAVERAGEと2番目の5つのAVERAGEを計算し、それを比較する必要があります。

質問の2番目の部分については、合計の集計は私があなたに与えるプッシュです。

これが役に立ちます。

0

まず最初と最後の5日間の平均を計算する必要があります。平均は、合計を項目数で割った値で定義されます。したがって、平均は(gasPrice[0] + gasPrice[1] + gasPrice[2] + gasPrice[3] + gasPrice[4])/5.0になります。

おそらく入力を得るためのものと同様のループでこの計算を行うべきです。ループは5回だけ反復する必要があります。一連の段階に問題ダウン

1

ブレーク:まず、ユーザーからの10の入力の価格を取得し、サイズ10

次の配列に格納する必要がある、あなたは平均を計算する必要がありますあなたは、その後でこれを行う

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

:(すなわち、あなたの配列のインデックス0-4内の値の)最初の5日間の価格、およびffAvgに格納するには、次の簡単なforループを使用してこれを行うことができます2日目5日、平均をlfAvgで保存する。あなたが次のことを行う可能性があります

あなたのタスクの次の部分は、平均値を比較することで、あなたは例えば、ifelse ifステートメントを使用してこれを行うことができ、あなたは数字と比較したい場合は、num1num2

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

これはnum1num2を比較し、num1num2より大きい場合は、中括弧でコードを実行します。

最後の比較を行うには、上記で行ったことを1日単位で組み合わせます。さまざまな方法で試してみてください。これはもっと学習するのに役立ちます。

希望すると、これが役立ちます。 :)

編集:あなたもあなたのブレイザーを閉じていないことに気付きました。コンパイラーが正しく機能するように、常にこれを行う必要があります。 {には対応する}が必要です。そうしないと、コンパイラはエラーをスローしてコンパイルしません。