Titlul: Siruri de caractere Scris de: Dragu Mircea din Iulie 18, 2013, 16:52:38 Salut.
Se considera un sir de n cuvinte. Sa se determine cuvantul de lungime maxima care se poate forma prin concatenarea a doua dintre cuvintele cele mai lungi citite de la tastatura. Exemplu : Numarul de cuvinte : 3 (padure, casa, alexandrescu) Lungimea cuvintelor : 6, 4, 12 Cuvantul de lungime maxima care se poate forma prin concatenarea a doua dintre cuvintele cele mai lungi citite de la tastatura : padurealexandrescu. Cum am incercat sa rezolv problema : citesc numarul de cuvinte dupa care tinand cont de lungimea fiecarui cuvant le ordonez crescator in functie de lungimea cuvantului. O alta conditie care ar trebui introdusa in cazul in care cuvintele sunt egale, cuvintele trebuiesc ordonate alfabetic. Problema este ca nu reusesc sa ordonez cuvintele. Multumesc. #include <stdio.h> #include <stdlib.h> int main() { char tab[255][255], temp[255]; int m[255], n, p=0, q=50, i; printf("\n Dati numarul de cuvinte : "); scanf("%d", &n); for(i=0; i<n; i++) { printf("\n Cuvantul %d : ", i+1); scanf("%s", &tab[n]); m = strlen(tab[n]); } } Titlul: Răspuns: Siruri de caractere Scris de: George Marcus din Iulie 18, 2013, 18:35:24 Pentru ordonare, invata sa sortezi un sir. Gasesti multe exemple pe net.
Dar, pentru a rezolva problema aceasta nici nu iti trebuie sortare. Printr-o parcurgere afli cele mai mari doua lungimi de cuvinte. Fie ele a si b. Daca a = b, gasesti cele mai mari doua cuvinte din punct de vedere lexicografic de lungime a si le concatenezi. Daca a != b, cauti cel mai bun cuvant de lungime a, la fel si pentru b si le concatenezi. De fiecare data incerci sa concatenezi in ambele moduri. Sper sa te descurci. Bafta! |