Tablice dynamicze 2-wymiarowe

Odpowiedz Nowy wątek
2016-04-30 13:45

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Witam,

Problem jest następujący: przed wypisaniem wyniku terminal wypisuje ciąg liczb.

Kod miał być do zadania ze SPOJA http://pl.spoj.com/problems/PP0502B/

#include <iostream>

using namespace std;

int main()
{
    short int amount;
    cin >> amount;

    int *output_numbers = new int [amount];

    int **tab = new int *[amount];
    for(int i = 0; i < amount; i++)
    {
        cin >> output_numbers[i];
        int test_value;
        test_value = output_numbers[i];

        tab[i] = new int[test_value];

        for(int j = 0; j < output_numbers[i]; j++)
            cin >> tab[i][j];
    }

    for(int i = 0; i < amount; i++)
    {
        int test_value;
        test_value = output_numbers[i];

        while(0 <= test_value)
        { 
            cout << tab[i][test_value] << " ";
            test_value--;
        }
        cout << endl;
    }

    for(int i(0); i < amount; i++)
        delete [] tab[i];
    delete [] tab;

    return 0;
}

zrzut z konsoli w załączniku

Pozostało 580 znaków

kq
2016-04-30 13:51
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 7 godzin temu

Lokalizacja: Szczecin

test_value = output_numbers[i];
cout << tab[i][test_value] << " ";

Wykraczasz poza zakres, tab[i] wskazuje na test_value liczb, a ty próbujesz pokazać jedną za.

Tak poza tym: jest jakiś powód dla którego używasz nagiego new i delete zamiast vectora? Nagie new i delete to antyidiom w C++.


Pozostało 580 znaków

2016-04-30 15:57

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

do zamknięcia

Pozostało 580 znaków

Odpowiedz

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