2016-11-15 6 views
0

特定の日に駆動されたマイル、使用されたガロン、およびガソリンのコストがわかったファイルをループすることができました。今、私はループに私がここまで得ている ループ関数を使用して和を求めるにはどうすればよいですか?

int main() 
{      
    ifstream inputFile;    
    int x = 1; 
    int milesDriven = 0; 
    double gallonsUsed = 0, 
    gasolineCost = 0; 
    int truckNumber, 
    numberOfTrips, 
    sumMilesDriven = 0; 
    double sumGallonsUsed = 0, 
    sumGasolineCost = 0; 
    int  avgMilesDriven; 
    double avgGallonsUsed, 
    avgGasolineCost; 

    /*   Display Truck Information 
     Get Number of Trips 
     Get Truck Information 
     Process Each Trip 
     Display Averages 
    */ 

    inputFile.open("100.txt"); 

    //Display Truck Information 
    cout << " " << setw(35) << "Red-Rig Trucking" << endl << endl; 
    cout << " " << setw(40) << "Summary of Truck Operations" << endl << endl; 
    inputFile >> truckNumber; 
    cout << "Truck: " << truckNumber << endl << endl; 

    inputFile.close(); 

    inputFile.open("truck.txt"); 

    //Get Number of Trips 
    inputFile >> numberOfTrips; 

    //Get Truck Information 
    cout << "Day" << " " <<setw(16) << "Miles" << " " << setw(16) << "Gallons" 
    << " " << setw(16) << "Gasoline" << endl << setw(20) << "Driven" << " " 
    << setw(16) << "Used" << " " << setw(16) << "Cost" << endl << endl; 

    while(!inputFile.eof()){ 
     inputFile >> milesDriven >> gallonsUsed >> gasolineCost; 

     cout << x << " " << setw(17) << milesDriven << " " << setw(17) 
     << fixed << setprecision(2) << gallonsUsed << " " << setw(12) << fixed 
     << setprecision << gasolineCost << endl ; 
     x++; 
    } 

    //Process Each Trip 

    /*while(inputFile) 

     { sumMilesDriven = sumMilesDriven + milesDriven; 

     inputFile >> milesDriven;  

     }*/ 

    for (; milesDriven--;) 
     sumMilesDriven += milesDriven; 

    cout << endl << "Sum" << " " << setw(15) << sumMilesDriven ; 

    for (;gallonsUsed;) 
     sumGallonsUsed += gallonsUsed; 

    cout << " " << setw(17) << sumGallonsUsed; 

    for (;gasolineCost--;) 
     sumGasolineCost += gasolineCost; 

    inputFile.close(); 

    return 0; 
} 

を用いて駆動マイル、使用ガロン、ガソリンコストの合計を取得するために、私が間違っているかを把握することはできませんどのように把握しようとしています。 forループ括弧から milesDriven >=10を取り出しました。コードが実行されるとき、私は間違った合計金額を取得します。合計が大きすぎるか小さすぎます。

+0

どのような言語ですか? JS? Python?タグを追加します。 –

+0

あなたのコードのどこかで 'sumMilesDriven'が宣言されていますか? –

+0

現時点では、本当に変わらない変数から 'sumMilesDriven'を追加しようとしています。通常、このような割り当ての場合、データの「配列」から読み込むか、またはsoemwhereからのデータを入力/入力して、それをループ内で合計する必要があります。ループの途切れを知るために、すべてのデータがいつ入力されたかを知る方法が必要になります。 –

答えて

0

あなたのコード:

for (sumGasolineCost += gasolineCost; gasolineCost >= 1; gasolineCost--);{ 
cout << " " << setw(17) << sumGasolineCost; 
} 

私の最初のアドバイスは、はコードを混乱書いていません。あなたがプログラミングしているときはいつでも、あなたの靴ひもを結ぶよりも良いことがあります。私はあなたが上記と同じであることを知っていると思います。

for (sumGasolineCost += gasolineCost; gasolineCost >= 1; gasolineCost--); 

cout << " " << setw(17) << sumGasolineCost; 

これで、ループ自体について説明します。帰って、あなたの教科書に相談してください。

for(init ; test ; incr) 
  • INITは通常
  • テストかどうかを決定するために、最初のを含め、各反復で実行されるテストされるもの初期化するために、一度に実行される:ループのための3つの成分を有しますループ本体は、通常、試験値
を更新するために、ループ本体の後に実行される INCR
  • が実行されます

    あなたの場合、sumGasolineCost += gasolineCostinitです。一度実行されます。これはループ本体内にある必要があります。他にもエラーがあります。配列や入力がどこにループしているのかを指定しないので、私ははるかに具体的ではありません。

    ループを実行すると、標準のstd :: accumulate関数が面白いかもしれません。

  • +0

    私はエラーを修正していきます。私の数字は以前よりもはるかに近くなっていますが、私はまだそれほどありません。助けてくれてありがとう。 – King0fChaos97

    +0

    もう一度やり直してしまい、うまくいきません。私はこれを試しました (; milesDriven> = 1; milesDriven--) sumMilesDriven + = milesDriven; – King0fChaos97

    +0

    私が見るコードは 'milesDriven'を0に初期化しています。何か他のことが起こらない限り、 'milesDriven> = 1'というテストはループの実行を妨げます。 –

    関連する問題