0
#include <iostream> //include header files
#include <string>

using namespace std;

int main () //main body fcn

{
    int answer;//delcaring integers and initializing them
    int a = 0;
    int b = 0;
    int c = 0;
    int i = 0;
    int j = 0;
    int k = 0;
    while( answer!=0) //start of while loop condition to execute unless equal to 0
    {
       cout << "How do you like your eggs in the morning? " << endl; //writes to std o/p
       cout << "Enter 1 for scrambled, 2 for fried or 3 for poached, 0 to exit " << endl; //prompts user for i/p
       cin >> answer; //stores i/p from user

       if (answer == 1 ) //if 1 is selected increments a by 1
       {
          a+=1;
       }
       else if (answer == 2) //if 2 is selected increments b by 1
       {
          b+=1;
       }
       else if (answer == 3) //if 3 is selected increment c by 1
       {
          c+=1;
       }

   }

   for (i = 0; i < a; i++) //initialises i at 0, loop commences compares it with a, increments i by 1
    {
        cout << "Scrambled eggs" <<  "*" << endl; //prints out tally result
    }
    for (j = 0; j < b; j++) //initialises j at 0, loop to commence if b is greater than j, increments j by 1
    {
        cout << "Fried Eggs " << "*" << endl; //prints out tally result
    }

    for (k = 0; k < c; k++) //initialises j at 0, loop commences if c is greater than a, increments j by 1
    {
            cout << "Poached Eggs" << "*" << endl; //prints out tally result
    }

}

私が抱えている問題は、for ループにあります。ネストされたループを使用して正しい棒グラフを取得する必要があると思いますが、これには問題がありました。現時点では、結果は「バー」ではなくリストに出力されています。誰かが光を当てることができれば、感謝します。

4

2 に答える 2

0

コードのこの部分を置き換えます。

  for (i = 0; i < a; i++) //initialises i at 0, loop commences compares it with a, increments i by 1
    {
        cout << "Scrambled eggs" <<  "*" << endl; //prints out tally result
    }
    for (j = 0; j < b; j++) //initialises j at 0, loop to commence if b is greater than j, increments j by 1
    {
        cout << "Fried Eggs " << "*" << endl; //prints out tally result
    }

    for (k = 0; k < c; k++) //initialises j at 0, loop commences if c is greater than a, increments j by 1
    {
            cout << "Poached Eggs" << "*" << endl; //prints out tally result
    }

これで:

cout << left << setw(20) << "Scrambled eggs " << right;
for (i = 0; i < a; i++) //initialises i at 0, loop commences compares it with a, increments i by 1
    {
        cout << "*"; //prints out tally result
    }
cout << endl << left << setw(20) << "Fried Eggs " << right;
    for (j = 0; j < b; j++) //initialises j at 0, loop to commence if b is greater than j, increments j by 1
    {
      cout << "*"; //prints out tally result
    }
cout << endl << left << setw(20) << "Poached Eggs " << right;
    for (k = 0; k < c; k++) //initialises j at 0, loop commences if c is greater than a, increments j by 1
    {
            cout << "*"; //prints out tally result
    }
cout << endl;

また、回答をゼロ以外の値に初期化します。

注 : setw の iomanip ヘッダー ファイルをインクルードします。

于 2013-03-27T18:24:17.450 に答える
0

次のように、対応する for ループの前に型を表示するとどうなるでしょうか。

cout << endl << "Scrambled eggs : \t";
for (i = 0; i < a; i++)
{
    cout << "*";
}

cout << endl << "Fried eggs : \t";
for (j = 0; j < b; j++)
{
    cout << "*";
}

cout << endl << "Poached eggs : \t";
for (k = 0; k < c; k++)
{
    cout << "*";
}

[a=3,b=6,c=4] の期待される結果は次のようになります。

Scrambled eggs : ***
Fried eggs :     ******
Poached eggs :   ****
于 2013-03-27T18:25:51.223 に答える