Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Problem s binarnim vyhladavanim v C

C a C++ C a C++ Problem s binarnim vyhladavanim v C

Aktivity (1)
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
Redaktor
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  +1 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 Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 28.10.2014 13:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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.