IB001 Úvod do programování - Seminární skupina 25 a 26

Bublinkové řazení pole - zdrojový kód

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

void prehod(int *x, int *y)
{ 
    int tmp = *x; 
    *x = *y; 
    *y = tmp; 
} 

void vypis(int n, int *pole)
{ 
    for(int i=0; i<n; i++) 
        printf("%d ",*(pole+i)); 
} 

void bubbleSort(int n, int pole[], int razeni)
{ 
    for(int i=0; i<n; i++){ 
        for(int j=0; j<n; j++){ 
            if(razeni == 0){ 
                if(pole[i] < pole[j]) prehod(&pole[i],&pole[j]); 
            }else{ 
                if(pole[i] > pole[j]) prehod(&pole[i],&pole[j]); 
            } 
        } 
    } 
} 

int main(void) 
{ 
    int pocet; 
    printf("Zadej pocet cisel: "); 
    scanf("%d", &pocet); 

    int cisla[pocet]; 
    printf("\nZadej jednotlive prvky (pocet: %d):\n", pocet); 
    for (int i = 0; i < pocet; i++){ 
        printf("%d: ",i+1); 
        scanf("%d", &cisla[i]); 
    } 

    scanf("%*[^\n]"); scanf("%*c"); // vycistime standartni vstup 
    char volba; 
    printf("Zadejte razeni cisel S = stoupajíci, K = klesajici: "); 
    scanf("%c", &volba); 

    printf("\nNeserazene pole: "); 
    vypis(pocet,&cisla); 

    switch(volba) 
    { 
        case 's': case 'S':
            printf("\nRazeni od nejmensiho po nejvetsi: "); 
            bubbleSort(pocet,cisla,0); 
            break; 
        case 'k': case 'K':
            printf("\nRazeni od nejvetsiho po nejmensi: "); 
            bubbleSort(pocet,cisla,1); 
            break; 
        default: 
            printf("Neplatna volba razeni"); 
            return -1; 
    } 
    vypis(pocet,&cisla); 
    printf("\n\n"); 
    return 0; 
}