1 / 4
Mar 2017

Napisany program pracuje zgodnie z poleceniem ale ciągle dostaję komunikat : błąd wykonania. Wie ktoś może dlaczego ?

include

using namespace std;

int main()
{
int a,b;
cin >> a;
cin >> b;

     int **tab=new int*[a];
        for(int i=0; i<a ;i++)
        {
            tab[i]=new int[b];
        }


     int **tab1=new int*[b];

        for(int i=0; i<b ;i++)
        {
            tab1[i]=new int[a];
        }

        for(int i=0; i<a ;i++)
        {
            for(int j=0; j<b ;j++)
            {
                cin>>tab[i][j];
            }
        }
        for(int i=0; i<a ;i++)
        {
            for(int j=0; j<b ;j++)
            {
                tab1[i][j]=tab[j][i];
            }
        }
        cout<<endl;
         for(int i=0; i<a ;i++)
        {
            for(int j=0; j<b ;j++)
            {
                cout<<tab1[i][j]<<endl;

            }
            cout<<endl;
        }

for(int i=0;i<b ;i++)
{
   delete [] tab1[i];

}
delete [] tab1;

for(int i=0;i<a;i++)
{
   delete [] tab[i];

}
delete [] tab;









return 0;

}

  • created

    Mar '17
  • last reply

    Mar '17
  • 3

    replies

  • 460

    views

  • 2

    users

po pierwsze nie panujesz nad wymiarami tablic (pomijając fakt że jest ich za dużo)

po drugie uruchom swój program i obejrzyj wynik

Co do uruchomienia to wiem, że jest błąd w tym, że powinienm wrzucać wyniki w jednej linii. Teraz nad tym pracuję. A co masz na myśli mówiąc, że nie panuję na wymiarem tablic ? Bo zapis wyraźnie mówi, że ta tablica jest dwuwymiarowa

pisząc, że za dużo miałem na myśli liczbę tablic - jedna w zupełności tablica starczy

a pisząc o mieszaniu - w różnych miejscach traktujesz jedną tablicę tak jakby miała wymiar [a][b] lub [b][a] - jeżeli a != b to musi się źle skończyć :slight_smile: