1

注文した各コンボの数と合計金額を表示しようとしています。A、B、および C に値を格納しない理由がわかりません。ここでは初心者のプログラマーなので、簡単にしてください。しばらくの間 if ステートメントに問題があったので、明らかに if ステートメント全体を間違って実行しています。

#include <iostream>
using namespace std;
int main( )
{
 int group = 0;
 char combo = ' ';
 int A = 0;
 int B = 0;
 int C = 0;
 double total = 0.0;
 cout << "How many customers are in the group? ";
 cin >> group;
 for (int counter = 0; counter < group; counter = counter + 1)
 {
    cout << "Enter combo ordered: ";
    cin >> combo;
    if (combo = A)
    {
        A = A + 1;
        cout << "Enter combo ordered: ";
        cin >> combo;
    }
    else if (combo = B)
    {
        B = B + 1;
        cout << "Enter combo ordered: ";
        cin >> combo;
    }
    else if (combo = C)
    {
        C = C + 1;
        cout << "Enter combo ordered: ";
        cin >> combo;
    }
    total = A*6 + B*6.25 + C*5.75;
 }
 cout << "# of Combo A ordered: " << A << endl;
 cout << "# of Combo B ordered: " << B << endl;
 cout << "# of Combo C ordered: " << C << endl;
 cout << "Total price: $" << total << endl;
 system("pause");
 return 0;
}
4

2 に答える 2

3

forループはfor (int counter = 0; counter < group; counter++)

If ステートメントは==等価に使用する必要があります。 =課題専用です。

ステートメントifでは、比較する文字を引用する必要があります: if (combo == 'A') {. 次のように、文字の配列としてコンボにアクセスする必要がある可能性もあります。if (combo[0] == 'A') {

于 2013-03-10T18:37:21.800 に答える
1

いくつか微調整する必要があるかもしれません。doubleusingを計算するときにそれを好まないコンパイラもいくつかありますが、プログラムが小さいため、ここでint使用しない理由はありません。doubleまた、いくつかの構文エラー (つまり with=ではなく==) があります。出力を分離して表示しようとしましたか? 何かのようなもの:

main(){
double A = 1;
double B = 2;
double C = 3;
double total = A*6 + B*6.25 + C*5.75;

 cout << "# of Combo A ordered: " << A << endl;
 cout << "# of Combo B ordered: " << B << endl;
 cout << "# of Combo C ordered: " << C << endl;
 cout << "Total price: $" << total << endl;
 system("pause");
 return 0;
}

修正されたコード:

#include <iostream>
using namespace std;
int main( )
{
 int group = 0;
 char combo = ' ';
 double A = 0;
 double B = 0;
 double C = 0;
 double total = 0.0;
 cout << "How many customers are in the group? ";
 cin >> group;
 for (int counter = 0; counter < group; counter++)
 {
    cout << "Enter combo ordered: ";
    cin >> combo;
    if (combo == 'A')
    {
        A++;
    }
    else if (combo == 'B')
    {
        B++;
    }
    else if (combo == 'C')
    {
        C++;
    } 
    cout << "Enter combo ordered: ";
    cin >> combo;       
 }

 total = A*6 + B*6.25 + C*5.75;

 cout << "# of Combo A ordered: " << A << endl;
 cout << "# of Combo B ordered: " << B << endl;
 cout << "# of Combo C ordered: " << C << endl;
 cout << "Total price: $" << total << endl;
 system("pause");
 return 0;
}

また、ループが少なくとも 1 回実行されてgroupいることを確認するために、値も表示します。ifここには、個別にテストするいくつかの障害点があります。


編集:

多分これをテストします:

#include <iostream>
using namespace std;
int main( )
{
 int group = 0;
 cout << "How many customers are in the group? ";
 cin >> group;
 for (int counter = 0; counter < group; counter++)
 {
    cout << "Test success";
 }

forループに入っているかどうかを確認します。

于 2013-03-10T20:35:29.547 に答える