Putting something outside of a loop error

Viewed 31

I have been tasked by my professor to make the following program:

Write the program to give the following output. In theory, this program uses all three loops.

The sample output is:

Enter a number between 1 and 50: 10
10 zeros: 0000000000

Do you want to do it again (y/n): Y

Enter a number between 1 and 50: -2
Invalid number - try again!!!
Enter a number between 1 and 50: 0
Invalid number - try again!!!
Enter a number between 1 and 50: 50
50 zeros: 00000000000000000000000000000000000000000000000000

Do you want to do it again (y/n): y

Enter a number between 1 and 50: 15
15 zeros: 000000000000000

Do you want to do it again (y/n): y

Enter a number between 1 and 50: 51
Invalid number - try again!!!
Enter a number between 1 and 50: -1
Invalid number - try again!!!
Enter a number between 1 and 50: 150
Invalid number - try again!!!
Enter a number between 1 and 50: 38
38 zeros: 00000000000000000000000000000000000000

Do you want to do it again (y/n): Y

Enter a number between 1 and 50: 2
2 zeros: 00

Do you want to do it again (y/n): n

My code so far is:

#include <iostream>
using namespace std;
    
int main() {
    int number;
    char letter;
    do {
        cout << "Enter a number between 1 and 50: ";
        cin >> number;
        while (number < 1 || number > 50) {
            cout << "Invalid number - try again!!!" << endl;
            cout << "Enter a number between 1 and 50: ";
            cin >> number;
        }
        for (int i = 0; i < number; i++) {
            cout << 0;
        }
        cout << endl;
        cout << "Do you want to do it again (y/n): ";
        cin >> letter;
    }
    while (letter == 'y' || letter == 'Y');
       
    return 0;
}

It runs perfectly, except for putting "x zeros" before it prints out of the for loop. I tried adding:

cout << number << " zeros:" << 0;

but it outputs this instead:

5 zeros:05 zeros:05 zeros:05 zeros:05 zeros:0
2 Answers

if I understood the question correctly, just put

cout << number << " zeros: "

out of the loop;

Nowhere in the code shown is x zeros being printed out. Simply add it above the for loop:

cout << number << " zeros: "; // <-- add this
for (int i = 0; i < number; i++) {
    cout << 0;
}
cout << endl;
Related