Witam Państwa, napotkałem problem z przerobieniem programu na tablice dynamiczne, prawdę mówiąc nie mam zielonego pojęcia jak się za to zabrać.
Starałem się kombinować coś z wskaźnikami ale wygląda to słabo. Proszę o wytłumaczenie ew. przerobienie z tłumaczeniem; z góry dzięki.
#include <iostream>
#include <conio.h>
#include <iomanip.h>
using namespace std;
void transpozycja(float tab[][4], int n);
void wyswietl_tab(float tab[][4], int n);
int main()
{
do {
/* deklaracja tablicy dwuwymiarowej */
float tab[4][4] = { { 1.0, 2.2, 0.8, 0.3 },
{ 4.9, 2.0, 7.1, 1.3 },
{ 3.1, 0.1, 3.0, 2.3 },
{ 5.8, 6.8, 7.8, 4.0 } };
int n;
n = sizeof tab[0] / sizeof(float);
/* wyświtlamy zawartość tablicy */
cout << "Zawartosc tablicy przed transpozycja:\n\n";
wyswietl_tab(tab, n);
/* algorytm transpozycji */
transpozycja(tab, n);
/* wyświtlamy zawartość tablicy po transpozycji*/
cout << "\nZawartosc tablicy po transpozycji:\n\n";
wyswietl_tab(tab, n);
cout << "\n";
printf("Czy chcesz kontynuowac prace programu t/n? [ESC konczy prace]\n");
} while (getch() != 27);
//system( "cls" );
return 0;
}
// funkcje
void transpozycja(float tab[][4], int n)
{
float zm;
int i, j;
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++) {
zm = tab[i][j];
tab[i][j] = tab[j][i];
tab[j][i] = zm;
}
}
void wyswietl_tab(float tab[][4], int n)
{
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
cout << " " << setw(3) << tab[i][j];
cout << "\n";
}
}