I'm having trouble with this program the objective is to Prompt the for a int. from 0-999, then split the int into three digits, then output the three digits from 000 through number entered using 3 nested for loops. I can get the second and last digits to work but I can't figure out what if statement(s) I need to use, so the program will work. Here is what I have so far:
int main()
{
int number, c, d, e;
cout << "Enter a Positive Integer from 0 to 999." << endl;
cin >> number;
while ((number < 0) || (number > 999))
{
cout << "Error: Negative Number or Number Greater than 999\n" << "Reenter that number and continue: \n";
cin >> number; }

c = number / 100;
d = (number % 100 - number % 10) / 10;
e = number % 10;

for ( int k= 0 ; k <= c ; k++)

for (int i = 0; i <= d ; i++)

for ( int j= 0; j <= e ; j++)

cout << k << i << j << endl;

return 0;
}

## All 3 Replies

Consider your boundary conditions. For each digit, unless the next outer loop is on the last iteration, you want to print 0 through 9. Otherwise you print 0 through the digit value. There isn't a very clean solution; you either use conditional expressions or long and redundant if sequences:

``````#include <iostream>

using namespace std;

int main()
{
int a, b, c;
int number;

cout<<"Enter a number from 0 - 999: ";
cin>> number;

a = number / 100;
b = (number % 100 - number % 10) / 10;
c = number % 10;

for ( int i = 0; i <= a; i++ ) {
for ( int j = 0; j <= ( ( i == a ) ? b : 9 ); j++ ) {
for ( int k = 0; k <= ( ( j == b ) ? c : 9 ); k++ )
cout<< i << j << k <<endl;
}
}
}``````

is that what you want ?

``````#include <iostream>

using namespace std;

int main()
{
int number, c, d, e;
cout << "Enter a Positive Integer from 0 to 999." << endl;
cin >> number;
while ((number < 0) || (number > 999))
{
cout << "Error: Negative Number or Number Greater than 999\n" << "Reenter that number and continue: \n";
cin >> number; }

c = number / 100;
d = (number % 100 - number % 10) / 10;
e = number % 10;

cout << "c=" << c << "d=" << d << "e=" << e << endl;
int k,i,j;
for ( k= 0 ; k <= 9 ; k++)

for (i = 0; i <= 9 ; i++)

for ( j= 0; j <= 9 ; j++) {

cout << k << i << j << endl;
if ( k == c && i == d && j == e )
return 0;
}
return 1; // to keep the compiler happy
}``````

Thanks narue and zuk.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.