program realizuje sortowanie bąbelkow

program realizuje sortowanie bąbelkow

/* program realizuje sortowanie bąbelkow */

#include <stdio.h> //zmiana z <studio.h>
//#include <bubbles.h> // niepotrzebna biblioteka
#define MAXTAB 99  //zla deklaracja  = 99

int wczytaj_liczbe(int min, int max)
{
int liczba,
wynik;
do
{
fflush(stdin); // czyszczenie niepoprawnego strumienia stdout
fprintf(stdout, "podaj liczbe calkowita z zakresu <%d-%d>?", min, max);
wynik = fscanf(stdin, "%d", &liczba); //zmana z referencji &wynik na liczba, zły strumień
} while (wynik != 1 || liczba > max || liczba < min); // blad logiczny
return liczba;
}
void zamien_jezeli_wieksza(int * tab, int pos_mn, int pos_wk)
{
int tmp;
if (tab[pos_mn] > tab[pos_wk])
{
tmp = tab[pos_mn];
tab[pos_mn] = tab[pos_wk];
tab[pos_wk] = tmp; //poprawiona zamiana zmiennych
}
//tmp = tab[pos_mn]; tab[pos_mn] = tab[pos_wk]; tab[pos_wk] = tab[pos_mn]; // wszystkie powinny być w klamrze
}
int main(int argc, char* argv[])
{
int tablica[MAXTAB];
int ile, i, j;
printf("\n\nJestem program ""sortujacy\n\nile ""liczb chcesz sortowac\n");
ile = wczytaj_liczbe(0, MAXTAB);
for (i = 1; i<=ile; i++) // poprawiony warunek
{
printf("Wczytuje liczbe nr. %d \n", i);
tablica[i-1] = wczytaj_liczbe(0, 999); // poprawiona indeksacja
}
/*for (i = 0; i < ile;i++)
{
printf("\nliczba nr. %d : %d", i + 1, tablica[i]);
}*/
for (i = 0; i < ile;i++)  //; niepotrzebny srednik
for (j = 0; j < (ile - 1); j++) //{ niepotrzebna klamra , oraz warunek petli
zamien_jezeli_wieksza(tablica, j, j+1); //zamiana z i + 1 na j + 1

printf("\nPosortowane:");
for (i = 0; i < ile; i++)
printf("\nliczba nr. %d : %d", i+1 , tablica[i]); //poprawiona indeksacja
return 0;
}


Learn More :