[ Machineria @ 22.01.2011. 10:53 ] @
Pozdrav!

Imam jedan problem.. imamo jedan niz od karaktera tipa char Z[9]={'A','A','B','A','A','A','C','A','B'} iz njega treba da izdvojim element koji se najvise puta ponavlja u ovom slucaju to je A.. I sada od broja 9 da oduzmem broj njegovih ponavljanja u ovom slucaju to je 6 sto znaci 9-6= 3 i kao resenje da ispisem 3. Kako se to radi program radim u Dev c++..Unapred hvala!
[ Mihajlo Cvetanović @ 22.01.2011. 11:54 ] @
Rešenje je da prođeš kroz niz dva puta, prvi put na odrediš maksimalni niz (A od tri komada), a drugi put da prebrojiš sve znakove iz tog niza (6 znakova A). Pronalaženje maksimalnog niza se radi tako što ideš kroz glavni niz, i imaš neki brojač i znak koji trenutno brojiš. Dokle god je sledeći znak u nizu isti taj znak ti inkrementiraš brojač. Kad se znak promeni onda pamtiš taj broj i taj znak (ali samo ako je taj broj veći od trenutno maksimalnog broja), a zatim resetuješ brojač i menjaš taj znak. Na kraju ćeš imati znak koji gradi najduži niz, i onda je prebrojavanje tog znaka lako u drugoj petlji.
[ pajaja @ 22.01.2011. 15:33 ] @
Pozdrav,

mozda ja nisam dobro razumeo problem ali mislim da se trazi element koji se najvise puta ponavlja ukupno u celom nizu, a ne koji gradi najduzu sekvencu istih karaktera u njemu? Ako sam u pravu onda za niz na primer: AABBBAACA ce da u prvom prolazu izabere B, iako bi trebalo A.
[ Machineria @ 22.01.2011. 15:43 ] @
@Pajaja problem je bio da se odredi u jednom nizu maksimalni broj ponavljanja nekog elementa koji je tipa char... Resio sam problem pomocu Mihajlove ideje..

evo probni primer ako nekom treba

Code:

#include<stdio.h>
main()
{
int i,j,k,max,el;
k=0;max=0;
char Z[9]={'A','B','A','A','A','B','B','A','C'};
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
if(Z[i]==Z[j])
k=k+1;
if(max<k)
{
max=k;
el=Z[i];
}
}
k=0;
}
printf("%i",9-max);
scanf("%i");
}


@Mihajlo hvala puno, resio sam problem!
[ X Files @ 22.01.2011. 16:09 ] @
@pajaja
Kada je Mihajlo rekao "(A od tri komada)" pretpostavljam da je mislio na "A od tri vrste razlicitih slova {A,B,C}", a ne "A od tri uzastopna komada".