Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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: C - odstranění duplicit v poli

Aktivity
Avatar
Levin
Člen
Avatar
Levin:17.11.2014 14:53

Ahoj, mám funkci

int bubleSort(int *poleKusu, int a){
int i, j;
    for(i = 0; i < a - 1; i++)
    {
        for(j = 0; j < a - i - 1; j++){

            if(poleKusu[j+1] < poleKusu[j]){

                int tmp = poleKusu[j + 1];

                poleKusu[j + 1] = poleKusu[j];

                poleKusu[j] = tmp;
            }
        }
    }

    return *poleKusu;
}

která mi seřadí prvky v poli od nejmenšího od největšího, ale nemůžu přijít na to, jak zároveň odstranit duplicity v poli, aby jedno číslo bylo v poli max 3x nebo při nejlepším jednou, ale kombinaci např. 1 1 1 mi uložilo do promenné jako 1, když 2 2 2, tak se promená zvýšila na 2, atd a v poli mi zustali jen dva prvky

1 a 2. Nějaká rada jak na to?

Editováno 17.11.2014 14:53
 
Odpovědět
17.11.2014 14:53
Avatar
tomisoka
Tvůrce
Avatar
tomisoka:17.11.2014 21:52

Na odstranění nějaké části pole používám obvykle toto:

uint32_t i, j, poleLen=10;
uint32_t pole[] = {1,2,3,3,4,4,4,7,9,10};
for(i=1,j=1;i<poleLen;++i){
   if(pole[i]!=pole[i-1]){
      pole[j++]=pole[i];
   }
}
/*j = délka bezduplicitního pole
pole[0] až pole[j-1] je přepsáno bezdupliciplitním polem*/

for(i=0;i<j;++i)
   printf("%d ", pole[i]);
printf("\n");
Editováno 17.11.2014 21:53
 
Nahoru Odpovědět
17.11.2014 21:52
Avatar
Odpovídá na tomisoka
Libor Šimo (libcosenior):18.11.2014 6:47

Prosím ťa, aký je rozdiel medzi uint32_t a unsigned long int?

Nahoru Odpovědět
18.11.2014 6:47
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
vitamin
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
vitamin:18.11.2014 7:04

uint32_t je unsigned integer s velkostou 32bit.
unsigned long int je unsigned integer ktory je >= unsigned int. Jeho presna velkost sa moze lisit, niekde moze mat 32bit, niekde 64...

 
Nahoru Odpovědět
18.11.2014 7:04
Avatar
Odpovídá na vitamin
Libor Šimo (libcosenior):18.11.2014 7:21

Všimol som si, že používaš tieto typy namiesto klasických. Má to nejaký špeciálny význam?

Nahoru Odpovědět
18.11.2014 7:21
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 5 zpráv z 5.