Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ponavljanje dvocifrenog broja u stringu

[es] :: C/C++ programiranje :: ponavljanje dvocifrenog broja u stringu

[ Pregleda: 2496 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anateus
gimnazija

Član broj: 196403
Poruke: 8
*.PPPoE-8156.sa.bih.net.ba.



Profil

icon ponavljanje dvocifrenog broja u stringu22.12.2009. u 13:21 - pre 174 meseci
napraviti funkciju koja pronalazi koliko se puta u stringu javlja neki dvocifreni broj (bez koristenja funkcija iz string.h)
hvala :)
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: ponavljanje dvocifrenog broja u stringu22.12.2009. u 13:44 - pre 174 meseci
Da li je taj dvocifrani broj dat, ili se gleda broj pojavljivanja svih dvocifrenih brojeva?

Recimo da je ovo drugo, ovo bi bio algoritam:

Imaš jednu promenljivu koja kaže koliko si dvocifrenih brojeva izbrojao.
Imaš još jednu promenljivu koja kaže koliko si do sada cifara izbrojao u trenutnoj grupi cifara.
U petlji ispituješ znakove u stringu počevši od početka.
- Ako je trenutni znak cifra onda povećaj <brojač cifara> za jedan.
- Ako trenutni znak nije cifra (ili je kraj stringa) onda vidi da li je <brojač cifara> == 2, pa ako jeste uvećaj <brojač dvocifrenih brojeva>. U svakom slučaju postavi <brojač cifara> na nulu.
 
Odgovor na temu

anateus
gimnazija

Član broj: 196403
Poruke: 8
89.146.177.*



Profil

icon Re: ponavljanje dvocifrenog broja u stringu22.12.2009. u 14:15 - pre 174 meseci
dat je neki dvocifreni br
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: ponavljanje dvocifrenog broja u stringu22.12.2009. u 14:31 - pre 174 meseci
U tom slučaju algoritam je isti, samo sa sledećim dodatkom: u trenutku kad povećaš <brojač cifara> za jedan treba da ažuriraš i jedan broj koji služi za čitanje stringa.

brojac_cifara++;
procitani_broj = 10*procitani_broj + (dati_string[trenutni_indeks] - '0');

Kada ispituješ da li je <brojač cifara> jednak 2 treba istovremeno da ispituješ i da li je <pročitani broj> jednak <datom broju>. Kada resetuješ <brojač cifara> na nulu treba takođe da resetuješ i <pročitani broj>.

Postoji jedna nedoumica: da li dati broj sme da bude substring nekog većeg broja u datom stringu? Ako je dati broj 42 a dati string 'ab1425cd' da se ovaj 42 računa kao pojavljivanje dvocifrenog broja 42?

 
Odgovor na temu

anateus
gimnazija

Član broj: 196403
Poruke: 8
89.146.162.*



Profil

icon Re: ponavljanje dvocifrenog broja u stringu22.12.2009. u 16:45 - pre 174 meseci
mislim da nije, jer u tom slucaju to vise nije dvocifreni broj
 
Odgovor na temu

drki89
Igor Drljić
Prhovo

Član broj: 127027
Poruke: 56
*.mediaworksit.net.



+4 Profil

icon Re: ponavljanje dvocifrenog broja u stringu30.01.2010. u 21:41 - pre 173 meseci
Ako sam dobro shvatio problem ovo bi trebalo da bude resenje:

Code:

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

int brojPonavljanja(char* str, char* br) {
    int brPon = 0;
    char *p;
    for(p=str;*p!='\0';) {
        if(*p==br[0]) {
            p++;
            if(*p==br[1]) brPon++;
        }
        else p++;
    }
    return brPon;
}

void main() {
    char* str;
    int duz;
    printf("Duzina niza:");
    scanf("%d",&duz);
    str = (char*)malloc(duz*sizeof(char));
    getchar();
    printf("Niz: ");
    gets(str);
    char br[2];
    br[0]=br[1]=0;
    printf("Broj koji se trazi:");
    scanf("%c%c",&br[0],&br[1]);
    printf("Broj ponavljanja: %d ",brojPonavljanja(str,br));
    free(str);
    system("pause");
}
 
Odgovor na temu

[es] :: C/C++ programiranje :: ponavljanje dvocifrenog broja u stringu

[ Pregleda: 2496 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.