Tablice dynamicze 2-wymiarowe

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

3
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++.

0

do zamknięcia

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