Mam pewne zadanie. Jest ono mniej więcej takie:
1. Mam stworzyć 2 tablice dla których zostaną załadowane od użytkownika 2 wyrazy.
2. W tych 2 słowach mam znaleźć najdłuższe podsłowo, które jest wspólne dla obu łańcuchów...
Może dam przykład:
Dla danych wejściowych: abaab bbbaaa
poprawną odpowiedzią jest: 3
Najdłuższym wspólnym podsłowem powyższych słów jest słowo baa.
Całość ma zostać wykonana pewnie za pomocą pętli... ewentualnie robiliśmy na zajęciach jeszcze bibliotekę string.h... może coś tam jest z niej do wykorzystania... ale nie umiem tego zbytnio połączyć... Próbowałem coś skleić ale na marne... wymyśliłem, że:
1. Najpierw muszę znaleźć jakby pierwszy wspólny znak.
a)przeszukiwać potem obie tablice i zwiększać pewna zmienna pomocnicza tak długo aż będzie koniec jednego z wyrazów albo litery nie będą już takie same... nie wiem czy chociaż trochę dobrze myślę...
Oto mój, na 100 % upośledzony, kod: O ile cokolwiek jest z tego dobrze to w samym sercu jestem na 100 % pewny że brakuje czegoś (myślałem tam o instrukcjach sterujących break albo goto (?))
Kod: Zaznacz cały
int main(int argc, char *argv[]) {
char tab[20],tab1[20];
int i,j,k,m=0,l;
puts("Podaj pierwszy wyraz:");
gets(tab);
puts("Podaj drugi wyraz:");
gets(tab1);
for(i=0;tab[i]!='\0';i++)
{
for(j=0;tab1[j]!='\0';j++)
{
if(tab[i]==tab1[j])
{
l=j;
for(k=i;((tab[k]!='\0')||(tab[l]!='\0'));k++)
{
if(tab[k]==tab1[l])
{
l++;
m++;
}
}
}
}
}
printf("%d",m);
return 0;
}
Dziękuję za wszystkie sugestie i podpowiedzi...