Błąd przy wywołaniu funkcji sortującej

0

Witam.

Stworzyłam tablicę i zaimplementowałam 3 różne sposoby sortowania, jednak w momencie gdy chce wywołać funkcję sortującą wyskakuje błąd. Czy ktoś z Was wie jaki może być powód?

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>


using namespace std;


void tworz_tab()
{
    int rozmiar;
    cout<<"Podaj rozmiar"<<endl;
    cout<<endl;

    cin>>rozmiar;

    int *tablica=new int [rozmiar];

    for (int i=0; i<rozmiar; i++)
    {

        tablica[i]=rand() % 10;
        cout<<tablica[i]<<" ";

    }


}

/*void wypelnij_tablice(int *tablica)
{
	for (int i = 0; i < wielkosc_tablicy; i++)
	{
		tablica[i] = rand() % 9 + 1;
	}
}*/

void sortowanie_przez_wstawianie(int *tablica, int rozmiar)
{
	int i;
	int x;

	for (int j = rozmiar - 2; j >= 0; j--)
	{
		 x = tablica[j];
		 for (i = j + 1; (i < rozmiar) && (x > tablica[i]);i++)
		{
			tablica[i - 1] = tablica[i];
		}
		tablica[i - 1] = x;
	}
}


void sortowanie_babelkowe(int rozmiar, int *tablica)
{
	for (int i = 1; i < rozmiar - 1; i++)
	{
		int spr = 1;
		for (int j = 0; j < rozmiar - 1; j++)
		{
			if (tablica[j] > tablica[j + 1])
			{
				swap(tablica[j], tablica[j + 1]);
				spr = 0;
			}
		}
		if (spr == 1) return;
	}
}

void quick_sort(int *tablica, int lewy, int prawy)
{
  int i,j,piwot;

  i = (lewy + prawy) / 2;
  piwot = tablica[i];
  tablica[i] = tablica[prawy];

  for(j = i = lewy; i < prawy; i++)
  if(tablica[i] < piwot)
  {
    swap(tablica[i], tablica[j]);
    j++;
  }
  tablica[prawy] = tablica[j];
  tablica[j] = piwot;

  if(lewy < j - 1)
  quick_sort(tablica, lewy, j - 1);


  if(j + 1 < prawy)
  quick_sort(tablica, j + 1, prawy);



}



int main()
{
    tworz_tab();
    cout<<endl;
    cout<<"Tablica po sortowaniu:"<<endl;
    cout<<endl;



     quick_sort(tablica, 0, rozmiar-1);

    //sortowanie_babelkowe(rozmiar, tablica);
    //sortowanie_przez_wstawianie(tablica, rozmiar)


return 0;
}
1

Jako argumenty podajesz zmienne które nie istnieją w funkcji main.

0

Jak więc zaimplementować tablicę aby zmienna rozmiar była widoczna w main?

1

Możesz np wrzucić zawartość tworz_tab do main albo jako argument do tej funkcji podawać tablicę i rozmiar które będą zadeklarowane w main.

0

Dziękuję za odpowiedź

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