Diskuze: Zjištění chybějícího prvku

C++ C a C++ Zjištění chybějícího prvku

Avatar
Matyáš Černohous (Matesak):

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
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 10.11.2013 20:38
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Matyáš Černohous (Matesak)
Jan Vargovský:

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 (Matesak):

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ý
Redaktor
Avatar
Odpovídá na Matyáš Černohous (Matesak)
Jan Vargovský:

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 (Matesak):

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):

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.