Ne rade mi tp 4,9,10, da li bi mogao da dobijem makar jedan od njih , javlja sistemsku gresku ili memorijsko prekoracenje a ja pojma nemam zasto.
#include<stdio.h>
#include<string.h>
struct rep
{
int pocindex;
char niz[202]; Â Â
};
int br = 0; Â int brrep = 0;
bool valja(char pom[], int index, char niz[])
{
int i;
for(i = index; i <= index+pom[0]-1&&i<=br; i++)
{
if(pom[i-index+1]!=niz[i]) return false;
}
if(i<=br) return valja(pom,index+pom[0],niz);
else
{
return true; Â Â
} Â Â
}
int main()
{
char C1,c2;
char niz[202];
scanf("%c%c",&C1,&c2); Â Â
//scanf("%s",&niz);
char ch;
br = 0;
ch = getchar();
while(ch>='0'&&ch<='9'&&br<=200) { br++; niz[br] = ch; ch = getchar();}
char pom[202];
rep ponavljanja[2];
for(int i = 1; i <= br; i++)
{//od svakog index-a pocnemo
for(int j = 1; j <= br - i + 1; j++)
{
pom[0] = j; Â for(int k = 1; k <= j; k++) { pom[k] = niz[k+i-1]; }
if(valja(pom, i, niz))
{
if(brrep==0)
{
brrep++; ponavljanja[brrep].pocindex = i; for(int z = 0; z <= pom[0];z++) ponavljanja[brrep].niz[z] = pom[z]; Â
}
else
{
if(i+pom[0]-1<ponavljanja[1].pocindex+ponavljanja[1].niz[0]-1) { ponavljanja[brrep].pocindex = i; for(int z = 0; z <= pom[0];z++) ponavljanja[brrep].niz[z] = pom[z]; Â } Â
else if(i+pom[0]-1==ponavljanja[1].pocindex+ponavljanja[1].niz[0]-1&&pom[0]<ponavljanja[1].niz[0]) { ponavljanja[brrep].pocindex = i; for(int z = 0; z <= pom[0];z++) ponavljanja[brrep].niz[z] = pom[z]; Â }
}
} Â Â Â
} Â Â Â Â
}
printf("%c%c",C1,',');
for(int i = 1; i < ponavljanja[1].pocindex; i++) printf("%c",niz[i]);
printf("(");
for(int i = 1; i <= ponavljanja[1].niz[0]; i++) printf("%c",ponavljanja[1].niz[i]);
printf(")");
getchar(); getchar(); Â Â
}