TheRevolucija
Cenjen
- Učlanjen(a)
- 08.05.2011
- Poruke
- 169
- Poena
- 169
Pozdrav!
Treba da ispisem mali programcic u C-u koji radi sledece:
ucitava niz, a zatim trazi duzinu najduzeg podniza koji se sastoji od nula i ispisuje pocetnu i krajnju poziciju tog podniza.
Npr, niz je 1 2 0 0 3 0 4 0 0 0 0 8
dakle, duzina najduzeg podniza 0 jeste 4, a pocetna i krajnja pozicija su 8 i 11.
Ovde imam delic koda
Ideja je sledeca:
petlja for prolazi kroz niz, ako je tekuci element jednak nuli, duzina niza se uvecava za 1, a promenljiva kraj oznacava da je taj element poslednji. Ako je tekuca duzina veca od duzine, duzina dobija vr tekuce duzine. Zatim se proverava da li je naredni element razlicit od nule. Ako jeste, dolazimo do toga da tekucu duzinu resetujemo na nulu.
Ovo je kostur, za koji sam svestan da ne radi... Medjutim, kako sam pocetnik, i vec sat i po se mlatim sa ovim, trenutno nisam u stanju da smislim logicne ispravke za kod, te bih molio za pomoc.
Treba da ispisem mali programcic u C-u koji radi sledece:
ucitava niz, a zatim trazi duzinu najduzeg podniza koji se sastoji od nula i ispisuje pocetnu i krajnju poziciju tog podniza.
Npr, niz je 1 2 0 0 3 0 4 0 0 0 0 8
dakle, duzina najduzeg podniza 0 jeste 4, a pocetna i krajnja pozicija su 8 i 11.
Ovde imam delic koda
Kod:
duz = 0;
d = 0;
for(j=1;j<db;j++) {
if (b[j-1]==0) {d++; kraj=j; if(d>duz)duz=d;}
else if(b[j]!=0)d=0;
}
Ideja je sledeca:
petlja for prolazi kroz niz, ako je tekuci element jednak nuli, duzina niza se uvecava za 1, a promenljiva kraj oznacava da je taj element poslednji. Ako je tekuca duzina veca od duzine, duzina dobija vr tekuce duzine. Zatim se proverava da li je naredni element razlicit od nule. Ako jeste, dolazimo do toga da tekucu duzinu resetujemo na nulu.
Ovo je kostur, za koji sam svestan da ne radi... Medjutim, kako sam pocetnik, i vec sat i po se mlatim sa ovim, trenutno nisam u stanju da smislim logicne ispravke za kod, te bih molio za pomoc.