Witam.
Mój problem jest natury technicznej.
Rozwiązuje zadanie :
http://pl.spoj.com/problems/PP0602B2/
#include <iostream>
using namespace std;
void create(int **tab, int **tab2, int l, int k);
void show ( int **tab, int l, int k)
{
for ( int i =0; i < l; i++)
{
for (int j=0; j < k; j++)
{
cout << tab[i][j] << " ";
}
cout << endl;
}
}
void putIn ( int **tab, int l, int k);
void changePosition(int **tab, int **tab2, int l, int k);
int main()
{
int t;
int l,k;
cin >> t;
int **tab;
int **tab2;
while ( t--)
{
cin >> l >> k;
tab = new int *[k];
tab2 = new int *[k];
create(tab,tab2, l,k);
putIn(tab,l,k);
changePosition(tab,tab2,l,k);
show(tab2,l,k);
for (int i = 0; i < l ; i++)
{
delete[] tab[i];
delete[] tab2[i];
}
delete[] tab;
delete[] tab2;
}
return 0;
}
void create(int **tab, int **tab2, int l, int k)
{
for (int i =0; i < l; i++)
{
tab[i] = new int [l];
tab2[i] = new int [l];
}
}
void putIn ( int **tab, int l, int k)
{
for ( int i =0; i < l; i++)
{
for (int j=0; j < k; j++)
{
cin >> tab[i][j];
}
}
}
void changePosition(int **tab, int **tab2, int l, int k)
{
for ( int j =0; j < k; j++)
{
for (int i =0; i < l; i++)
{
if ( j % 2 == 0)
{
if ( i == l-1 && j!=k-1)
{
tab2[i][j+1] = tab[i][j];
}
else if (i == l-1 && j == k-1 )
{
tab2[0][0] = tab[i][j];
}
else
tab2[i+1][j] = tab[i][j];
}
else
{
if ( i == 0 && j!=k-1)
{
tab2[i][j+1] = tab[i][j];
}
else if ( i ==0 && j == k-1)
{
tab2[0][0] = tab[i][j];
}
else
tab2[i-1][j] = tab[i][j];
}
}
}
}
I algorytm wszystko ładnie przestawia, jednak problem pojawia się, gdy chce przejść do następnej tablicy. Po prostu zwyczajnie wyrzuca błąd.
Ktoś da rade mi pomóc ?
Pozdrawiam