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: Zjištění chybějícího prvku

Aktivity
Avatar
Matyáš Černohous:10.11.2013 20:37

Zdravím,
mám seřazené pole čísel a potřebuji zjistit jestli jsou ty čísla posloupná, nebo nějaké chybí. Zatím mě vůbec nenapadá mě jak bych to mohl zjistit.
Díky za rady

 
Odpovědět
10.11.2013 20:37
Avatar
Odpovídá na Matyáš Černohous
Zdeněk Pavlátka:10.11.2013 20:38

Co myslíš slovem posloupná?

Nahoru Odpovědět
10.11.2013 20:38
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Matyáš Černohous
Jan Vargovský:10.11.2013 20:44

Jde o to jak má být posloupná, jestli geometricky nebo arimeticky.

 
Nahoru Odpovědět
10.11.2013 20:44
Avatar
Odpovídá na Zdeněk Pavlátka
Matyáš Černohous:10.11.2013 20:45

Když budu mít seřazené pole: 1,2,3,4,5,6,8­,9,10,11... tak jak zjisti že tam chybí číslo 7.

 
Nahoru Odpovědět
10.11.2013 20:45
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Matyáš Černohous
Jan Vargovský:10.11.2013 20:50

No to je aritmetická. Tak třeba vezmeš 0 a 1 prvek, zjistíš jaký je koeficient, který se přičítá k číslům a jednoduše jedeš cyklem a kontroluješ.

 
Nahoru Odpovědět
10.11.2013 20:50
Avatar
Odpovídá na Jan Vargovský
Matyáš Černohous:11.11.2013 22:16

Zkusil jsem to udělat takhle, ale nějak se tomu nechce pracovat správně. Teoreticky by to tak ale jít mělo.

        while(chyb != true)
{
    for(int i = 0; i<delkaPole; i++)
    {
            if(pole[i] == chCislo)
            {
                       chCislo++;

            }
            else
             {
                       cout<<chCislo<<endl;
                       chyb = true;
                       break;

                }
                }


}
Editováno 11.11.2013 22:19
 
Nahoru Odpovědět
11.11.2013 22:16
Avatar
Michal Říčan (fussak):12.11.2013 8:17

Tohle by mohlo fungovat.

int a[] = {0,1,2,3,4,5,6,8,9};

int length = sizeof(a)/sizeof(int);

int m = a[1]-a[0];

for(int i = 0; i < (length-1) ; i++)
{
    if ( (a[i+1] - m) == (a[i]) )
    {
        continue;
    }

    else
    {
        cout << "Chybi hodnota = " << (a[i] + m) << endl;
    }

}
Editováno 12.11.2013 8:18
 
Nahoru Odpovědět
12.11.2013 8:17
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 7 zpráv z 7.