2D Arrays

Can anyone help me to simplify or make this code better? I feel as if i made it unnecessarily long.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std;

int main() {

	int numbers[10][10] = {
			{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
			{2, 4, 6, 8, 10, 12, 14, 16, 18, 20},
			{3, 6, 9, 12, 15, 18, 21, 24, 27, 30},
			{4, 8, 12, 16, 20, 24, 28, 32, 36, 40},
			{5, 10, 15, 20, 25, 30, 35, 40, 45, 50},
			{6, 12, 18, 24, 30, 36, 42, 48, 54, 60},
			{7, 14, 21, 28, 35, 42, 49, 56, 63, 70},
			{8, 16, 24, 32, 40, 48, 56, 64, 72, 80},
			{9, 18, 27, 36, 45, 54, 63, 72, 81, 90},
			{10, 20, 30, 40, 50, 60, 70, 80, 90, 100}
	};

	for (int i=0; i<10; i++) {
		for (int j=0; j<10; j++) {
			cout << numbers[i][j] << " " << flush;
		}
		cout << endl;
	}

	return 0;
}
Who needs an array?

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <iomanip>

int main() {

    for (unsigned i = 1; i <= 10; ++i)
    {
        for (unsigned j = 1; j <= 10; ++j)
            std::cout << std::setw(4) << i*j ;
 
        std::cout << '\n';
    }
}
Could you elaborate more on your code? I don't understand it.
You could try making a nested for loop after you initialize your array to enter the values for you, something that kind of looks like this:
1
2
3
4
5
for(int i = 0; i < 10; i++)
{
    for(int j = 0; j < 10; j++)
       numbers[i][j] = (i + 1)(j + 1);
}


Where basically you are assigning the value of j + 1 to each element of the array, and multiplying it by i + 1 in order to get the values you have already.
Last edited on
Topic archived. No new replies allowed.