Reputation: 184
#include <iostream>
using namespace std;
void TimesTable(int count)
{
for (int j = 1; j < 13; j++)
{
cout << count << " x " << j << " = " << count*j << " " << endl;
}
}
int main()
{
for (int count = 1; count < 13; count++)
{
TimesTable(count);
cout << endl;
}
system("Pause");
}
This prints
"1 x 1 = 1
1 x 2 = 2
2x1 = 2
2x2 = 4
3x1 = 3
3x2 = 6"
and so on. But the thing I want to do is so instead of having them all print in a line downwards, I want to have it in blocks so,
"1 x 1 = 1 2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5
1 x 2 = 2 2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10"
and so on. But obviously it would look better if it didn't then go to 12 horizontally or otherwise you'd have to grab the bar at the bottom of the console window and drag to see the other timestables. I'd like it so that it went to 5 on block line 1 then on the 2nd line of blocks it would be 6 to 10 and the final line 10 to 12.
Yes it's random that it only goes up to 12 but it was an exercise and I've just adapted it into some other monster.
And I guess I could just have more than one cout in the for loop but I swear in the past I've seen someone do this with just a clever way of passing through a variable so that it printed a block of asterisks side by side instead of pretending to do it.
Desired Result (make it easier with symbols instead):
" ***** ^^^^^ &&&&&
***** ^^^^^ &&&&&
***** ^^^^^ &&&&& "
Result as of now:
" *****
*****
*****
^^^^^
^^^^^
^^^^^
&&&&&
&&&&&
&&&&& "
Upvotes: 0
Views: 154
Reputation: 15657
To format columns, use std::setw from <iomanip>
Sets the field width to be used on output operations.
now.
outside, iterate over the lines.
inside, iterate over the columns.
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int cols_per_line = 5;
for (int line = 1; line < 13; line++)
{
for (int col = 1; col <= cols_per_line; col++)
{
cout << setw(2) << col << " x " << setw(2) << line << " = " << setw(3) << line*col << " ";
}
cout << endl;
}
}
[root@rnrlabs ~]# ./a.out
1 x 1 = 1 2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5
1 x 2 = 2 2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10
1 x 3 = 3 2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15
1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20
1 x 5 = 5 2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
1 x 6 = 6 2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30
1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35
1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40
1 x 9 = 9 2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45
1 x 10 = 10 2 x 10 = 20 3 x 10 = 30 4 x 10 = 40 5 x 10 = 50
1 x 11 = 11 2 x 11 = 22 3 x 11 = 33 4 x 11 = 44 5 x 11 = 55
1 x 12 = 12 2 x 12 = 24 3 x 12 = 36 4 x 12 = 48 5 x 12 = 60
Upvotes: 2
Reputation: 2177
Just remove the endl at the end of TimeTable for inner "for" and add another counter for splitter say:
Edit: change j with count.
int splitter = 0;
for (int j = 1; j < 13; j++, splitter++)
{
cout << j << " x " << count << " = " << count*j << "\t";
if (splitter == 5)
{
cout << endl;
splitter=-1;
}
}
1 x 1 = 1 2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5 6 x 1 = 6
7 x 1 = 7 8 x 1 = 8 9 x 1 = 9 10 x 1 = 10 11 x 1 = 11 12 x 1 = 12
1 x 2 = 2 2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10 6 x 2 = 12
7 x 2 = 14 8 x 2 = 16 9 x 2 = 18 10 x 2 = 20 11 x 2 = 22 12 x 2 = 24
1 x 3 = 3 2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15 6 x 3 = 18
7 x 3 = 21 8 x 3 = 24 9 x 3 = 27 10 x 3 = 30 11 x 3 = 33 12 x 3 = 36
1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20 6 x 4 = 24
7 x 4 = 28 8 x 4 = 32 9 x 4 = 36 10 x 4 = 40 11 x 4 = 44 12 x 4 = 48
1 x 5 = 5 2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25 6 x 5 = 30
7 x 5 = 35 8 x 5 = 40 9 x 5 = 45 10 x 5 = 50 11 x 5 = 55 12 x 5 = 60
1 x 6 = 6 2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36
7 x 6 = 42 8 x 6 = 48 9 x 6 = 54 10 x 6 = 60 11 x 6 = 66 12 x 6 = 72
1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42
7 x 7 = 49 8 x 7 = 56 9 x 7 = 63 10 x 7 = 70 11 x 7 = 77 12 x 7 = 84
1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48
7 x 8 = 56 8 x 8 = 64 9 x 8 = 72 10 x 8 = 80 11 x 8 = 88 12 x 8 = 96
1 x 9 = 9 2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54
7 x 9 = 63 8 x 9 = 72 9 x 9 = 81 10 x 9 = 90 11 x 9 = 99 12 x 9 = 108
1 x 10 = 10 2 x 10 = 20 3 x 10 = 30 4 x 10 = 40 5 x 10 = 50 6 x 10 = 60
7 x 10 = 70 8 x 10 = 80 9 x 10 = 90 10 x 10 = 100 11 x 10 = 110 12 x 10 = 120
1 x 11 = 11 2 x 11 = 22 3 x 11 = 33 4 x 11 = 44 5 x 11 = 55 6 x 11 = 66
7 x 11 = 77 8 x 11 = 88 9 x 11 = 99 10 x 11 = 110 11 x 11 = 121 12 x 11 = 132
1 x 12 = 12 2 x 12 = 24 3 x 12 = 36 4 x 12 = 48 5 x 12 = 60 6 x 12 = 72
7 x 12 = 84 8 x 12 = 96 9 x 12 = 108 10 x 12 = 120 11 x 12 = 132 12 x 12 = 144
Upvotes: 0