Powrót na górę konsoli - tworzenie kolumn.

0

Witajcie! Mam pewien problem, który zilustruję przykładem. Tworzę program, który wypisuje (wylicza drukując) liczby od 1 do 99 - w jednej kolumnie, każda pod sobą.
Otóż chcę stworzyć trzy kolumny - każda obok siebie, tak by w każdej były po 33 liczby. Pytanie brzmi: jak to zrobić, jak po kolejno 33 i 66 liczbach wrócić na samą górę konsoli? Jest w konsoli tak:

1
2
3
4
...
99

Chcę by było tak:

1 34 67
2 35 68
3 36 69
... ... ...
33 66 99

0

Przecież Możesz w pętli od 1 do 33 drukować w pojedynczym wierszu: i i + 33 i + 66.

0
lion137 napisał(a):

Przecież Możesz w pętli od 1 do 33 drukować w pojedynczym wierszu: i i + 33 i + 66.

oczywiście, że w tym programie tak.
Mam do zrobienia bardziej skomplikowany program, gdzie mam podobny problem, stąd to pytanie na forum. Potrzebuję dostać się na górę konsoli.

0

Stwórz tablice w pamięci i drukuj wierszami.

0
_13th_Dragon napisał(a):

Stwórz tablice w pamięci i drukuj wierszami.

Mógłbyś to jakoś przedstawić w formie kodu? Byłbym wdzięczny.

1
#include <iostream>
using namespace std;

int main()
{
	int tb[]={1,2,3,4,5,6,7,8,9,10};
	int sz=sizeof(tb)/sizeof(*tb);
	for(int y=0;y<sz;y+=3)
	{
		for(int x=0;x<3;++x)
		{
			int i=y+x;
			if(i<sz)
			{
				if(x) cout<<'\t';
				cout<<tb[i];
			}
		}
		cout<<endl;
	}
	cout<<endl;
	int rows=(sz+3-1)/3;
	for(int y=0;y<rows;++y)
	{
		for(int x=0;x<3;++x)
		{
			int i=x*rows+y;
			if(i<sz)
			{
				if(x) cout<<'\t';
				cout<<tb[i];
			}
		}
		cout<<endl;
	}
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1