Problem jest raczej prosty - mimo tego nie potrafię sobie z nim dać rady...
Mam macierz trójkątną dolną, np.
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
W ten sposób - dla oszczędności miejsca - zapisuję macierz symetryczną...
Chciałbym teraz wypisać jej wszystkie elementy. Czyli chcę uzyskać coś takiego jako wynik (pełną macierz symetryczną):
1 2 4 7 11
2 3 5 8 12
4 5 6 9 13
7 8 9 10 14
11 12 13 14 15
To, co najistotniejsze - macierz przechowuję w tablicy jednowymiarowej!
Wypisywanie po wierszu nie jest problemem - schody zaczynają się w drugiej pętli, gdzie przechodzę po kolumnach - nie wiem jak obliczyć współrzędną elementu w tablicy :)
int matrix[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
int num=0, rozm=5;
for(int i=0; i<rozm; i++)
{
num+=i;
for(int j=0; j<i+1; j++)
{
cout << matrix[num+j] << " ";
}
for(int j=i+1; j<rozm; j++)
{
cout << matrix[???] << " ";
}
cout << endl;
}
Za każdą pomoc będę wdzięczny