Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.235 pregleda

Najnovija ↓

ponavljanje dvocifrenog broja u stringu 22.12.2009. u 14:21 · pre 205 meseci #1
napraviti funkciju koja pronalazi koliko se puta u stringu javlja neki dvocifreni broj (bez koristenja funkcija iz string.h)
hvala :)
Re: ponavljanje dvocifrenog broja u stringu 22.12.2009. u 14:44 · pre 205 meseci #2
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.
Re: ponavljanje dvocifrenog broja u stringu 22.12.2009. u 15:31 · pre 205 meseci #4
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?

Re: ponavljanje dvocifrenog broja u stringu 30.01.2010. u 22:41 · pre 203 meseca #6
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");
}
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme