IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Problem s binarnim vyhladavanim v C

Aktivity
Avatar
Head
Člen
Avatar
Head:22.10.2014 19:32

Nevedel by mi niekto povedať prečo časť s binarnim vyhladavanim nefunguje ?

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

int main()
{
    unsigned int dlzka_pola, pole[50], i, j, pp;
    printf("Zadaj dlzku pola\n");
    scanf("%d", &dlzka_pola);
    srand(time(0));
    printf("Nezoradene pole: ");
    for (i=0; i<dlzka_pola; i++)
    {
     pole[i] =1+ rand() % 100;
     printf("%d ", pole[i]);
    }

    printf("\nZoradene pole:   ");
    for (i=0; i<dlzka_pola; i++)
    {
     for (j=0; j<dlzka_pola; j++)
     {
      if (pole[j]>pole[j+1])
       {
        pp=pole[j];
        pole[j]=pole[j+1];
        pole[j+1]=pp;
       }
     }
    }
     for (i=0; i<dlzka_pola; i++)
        {
         printf("%d ", pole[i]);
        }


    int lava=0,prava=dlzka_pola,stred,hladany_prvok;
    printf("\nZadaj hladany prvok:");
    scanf("%d", &hladany_prvok);
    do
    {
     stred=(lava + prava) / 2;
     if (hladany_prvok > stred)
        lava=stred+1;
     else if (hladany_prvok < stred)
        prava=stred-1;
    } while(hladany_prvok != pole[stred] && lava <= prava);
    if (hladany_prvok == pole[stred])
        printf("Hladany prvok sa nasiel");
    else
        printf("Hladany prvok sa nenasiel");


    return 0;
}
 
Odpovědět
22.10.2014 19:32
Avatar
Silvinios
Tvůrce
Avatar
Odpovídá na Head
Silvinios:22.10.2014 19:52

Ve while cyklu se proměnná hladany_prvok chybně porovnává s indexem stred, místo aby se porovnávala s hodnotou pole[stred].

Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět
22.10.2014 19:52
Avatar
Head
Člen
Avatar
Odpovídá na Silvinios
Head:22.10.2014 20:55

dakujem ... neviem kde som rozum nechal -_-

 
Nahoru Odpovědět
22.10.2014 20:55
Avatar
Odpovídá na Head
Libor Šimo (libcosenior):28.10.2014 12:08

Čo je to binárne vyhľadávanie?

Nahoru Odpovědět
28.10.2014 12:08
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Hartinger
Vlastník
Avatar
Avatar
Nahoru Odpovědět
29.10.2014 7:35
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.