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 回答