I could use some assistance with "for loops" please.

Apr 30, 2013 at 9:14pm
I have a pretty horrible programming teacher. She doesn't explain much or do any coding with us in class so I'm sorry but I'm not really sure what she's looking for exactly. I'm really struggling to figure this out.

Anyways, she gave us an assignment saying:
1. Write nested C++ for loops that display the output below.

0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5

__________________________________________________________________

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    
    for ( int i = 0; i < 6; i++ )
	{
		for ( int k = 0; k < 2; k++ )
		{
			cout << (i * k);
		}
		cout << endl;
	}
	
    system("PAUSE");
    return EXIT_SUCCESS;
}


Which gives an output of:

00
01
02
03
04
05

Can anyone give me a hand and point me in the right direction?
Last edited on Apr 30, 2013 at 10:05pm
Apr 30, 2013 at 9:31pm
First you should notice that your output is one line short.

Second what is the purpose of the "magic number" 2 in the following snippet?
for ( int k = 0; k < 2; k++ )

Why are you multiplying i * k?

Doesn't your output always start at zero and increment by one each time?
Apr 30, 2013 at 10:15pm
Oh sorry. It does start off with 00. I forgot to add that.
May 1, 2013 at 12:01am
So, when dealing with small loops like this it usually helps to think about every step you want your program to make:

First: you want only one number to be outputted, and you want this number to be a zero:
so starting k = 0 is a good start, because you want to output 0 in the begining each time, but you want to change how many numbers it outputs each time.

so in your inner loop, you want the number that k is less then "<" to change each time.
once everything is said and done, you should have something like this:

1
2
3
4
5
6
7
8
9
    for ( int i = 0; i <=5; i++ )
	{
		for ( int k = 0; k <=  i;  k++ )
		{
			cout << k;
		}
		cout << endl;
	}



the "magic number" 2 that jlb was speaking of, is the reason why you are only getting 2 numbers on each of your lines.

and I'm not sure why you were multiplying, but it makes things a lot easier not to do that.

Good Luck
May 1, 2013 at 1:52am
Thank you! I didn't even think to make k equal to i. Wow I feel dumb.
I appreciate that though thank you.
Topic archived. No new replies allowed.