Sal, am facut un program in C care sa afiseze daca doua cuvinte sunt anagrame una fata de cealalta.Programu merge daca nu folosesc goto, dar daca il bag in cod pt optimizarea codului programul nu mai merge din cauza evaluarii gresite a primului if.
Care e greseala?
CODSURSA
#include <stdio.h>
#include <string.h>
int main() {
char s1[20],s2[20];
int i,j,l1,l2,k,ok;
printf("Introduceti primul cuvant: "); gets(s1);
printf("Introduceti al doilea cuvant: "); gets(s2);
ok=1;
i=0;
l1=strlen(s1) - 1;
l2=strlen(s2) - 1;
if ((l1 != l2) || strcmp(s1,s2)) {
ok=0;
goto t;
}
else while (i<=l1) {
for (j=0,k=0; j<=l2; j++) {
if (s1[i]==s2[j]) {
k++;
i++;
}
}
if (k!=l1) ok=0;
else ok=1;
}
t: if (ok) printf("DA");
else printf("NU");
getchar();
return 0;
}
#include <string.h>
int main() {
char s1[20],s2[20];
int i,j,l1,l2,k,ok;
printf("Introduceti primul cuvant: "); gets(s1);
printf("Introduceti al doilea cuvant: "); gets(s2);
ok=1;
i=0;
l1=strlen(s1) - 1;
l2=strlen(s2) - 1;
if ((l1 != l2) || strcmp(s1,s2)) {
ok=0;
goto t;
}
else while (i<=l1) {
for (j=0,k=0; j<=l2; j++) {
if (s1[i]==s2[j]) {
k++;
i++;
}
}
if (k!=l1) ok=0;
else ok=1;
}
t: if (ok) printf("DA");
else printf("NU");
getchar();
return 0;
}
Multumesc pt ajutor!
