Mam problem z poniższym kodem, wywala mi unhandled exception w linijce
++TPom[T[i]]; // po tych operacjach TPom[i] będzie zawierała
jakieś sugestie w czym problem?
// counting sort.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <cstring>
#include <iostream>
#include <time.h>
#include <Windows.h>
using namespace std;
const int iloscElementow=10;
const int zakres=100;
void losuj(int * t)
{
int i=0;
srand( time( NULL ) );
for(i=0;i<iloscElementow;++i)
{
t[i]=rand()%zakres;
}
// cout<<"Wylosowano "<<iloscElementow<<" elementow"<<endl<<endl;
}
void countingSort(int *tab)
{
int T[iloscElementow]; // tablica zawierająca elementy do posortowania
int Tp[iloscElementow]; // tablica zawierająca elementy posortowane
int TPom[zakres]; // zawiera liczbę elementów o danej wartości
int i; // zmienna pomocnicza
for(i = 0 ; i < zakres ; ++i)
TPom[i] = 0; // zerowanie tablicy
for(i = 0 ; i < iloscElementow ; ++i)
++TPom[T[i]]; // po tych operacjach TPom[i] będzie zawierała
// liczbę wystąpień elementów o kluczach mniejszych od i
for(i = 1 ; i < zakres ; ++i)
TPom[i] += TPom[i-1]; // teraz TPom[i] zawiera pozycje w posortowanej
// tablicy ostatniego elementu o kluczu i
for(i = iloscElementow-1 ; i >= 0 ; --i)
Tp[--TPom[T[i]]] = T[i]; // wstawienie elementu na odpowiednią pozycję
// i aktualizacja TPom
}
int _tmain(int argc, _TCHAR* argv[])
{
int tab[iloscElementow];
losuj(tab);
countingSort(tab);
for (int i=0; i<iloscElementow;++i)
{
cout<<tab[i]<<endl;
}
return 0;
}
fasadin