Witam, napisałem takie sortowanie:
#include <stdio.h>
void wpisz_do_tablicy(int tab[], int n);
void odczytaj_tablice(int tab[], int n);
void sortowanie_przez_wybor(int tab[],int n);
/******************************************************************************/
int main()
{
int n; // - liczba elementow w tablicy
printf("Podaj ilosc elementow do posortowania: ");
scanf("%d", &n);
int tab[n]; // - tablica n elementowa
wpisz_do_tablicy(tab, n); // - funkcja uzupelnia tablice
printf("\n---------- ----- -----\n");
printf("SORTOWANIE PRZEZ WYBOR");
printf("\n---------- ----- -----\n");
sortowanie_przez_wybor(tab, n); // - funkcja wykonujaca sortowanie
odczytaj_tablice(tab, n); // - funkcja odczytujaca zawartosc tablicy
getch();
return 0;
}
/******************************************************************************/
void wpisz_do_tablicy(int tab[], int n)
{
int i;
for(i = 0; i < n; i++)
{
printf("Podaj %d element: ", i+1);
scanf("%d", &tab[i]);
}
}
/******************************************************************************/
void odczytaj_tablice(int tab[], int n)
{
int i;
for(i = 0; i < n; i++) printf("Element %d: %d\n", i+1, tab[i]);
}
/******************************************************************************/
void sortowanie_przez_wybor(int tab[],int n)
{
int j = 0, i = 0;
int minimalny = 0, pojemnik = 0;
for(j; j < n; j++)
{
for(i; i < n; i++) if(tab[minimalny] > tab[i]) minimalny = i;
if(tab[j] != tab[minimalny])
{
pojemnik = tab[j];
tab[j] = tab[minimalny];
tab[minimalny] = pojemnik;
}
i = j + 1;
}
}
/******************************************************************************/
Niestety nie działa poprawnie, nie wszystkie elementy są posortowane. Pomóżcie, co tu jest źle ?