Titlul: problema siruri Scris de: Dragu Mircea din Februarie 02, 2013, 13:28:25 Am o problema in c si anume : spunem ca doua cuvinte rimeaza daca sufixele incepand de la ultima vocala sunt identice. Sa se scrie un program care citeste doua cuvinte a si b si determina daca ele rimeaza.
Problema poate fi rezolvata usor utilizand functiile dedicate ale limbajului c pentru string-uri. Cod: #include <stdio.h> Astept sfaturi. multumesc. [editat de moderator] : Te rog sa folosesti tag-ul "[ code] [ / code]" data viitoare cand postezi cod. Titlul: Răspuns: problema siruri Scris de: Simoiu Robert din Februarie 02, 2013, 13:51:29 Si nu merg programele ? Sau cu ce vrei sa te ajutam de fapt ?
Titlul: Răspuns: problema siruri Scris de: Dragu Mircea din Februarie 02, 2013, 13:56:00 primul program functioneaza, al doilea imi returneaza mereu RIMEAZA.
Titlul: Răspuns: problema siruri Scris de: Simoiu Robert din Februarie 02, 2013, 14:00:18 Cod: #include <stdio.h> [LE] Ca un sfat, strlen si strcpy sunt functii predefinite in headerul cstring (string.h vechi). Titlul: Răspuns: problema siruri Scris de: Dragu Mircea din Februarie 02, 2013, 14:20:56 De data asta imi returneaza mereu NU RIMEAZA.
Titlul: Răspuns: problema siruri Scris de: Simoiu Robert din Februarie 02, 2013, 14:24:08 Serios, eu am bagat 2 si o dat RIMEAZA (spre ex. abcefgfgfg si abababefgfgfg, de la e incolo rimeaza). Ia-ti compilatorul mai nou de pe site-ul mingw.org, sau impreuna cu noul CodeBlocks 12.11.
Titlul: Răspuns: problema siruri Scris de: Dragu Mircea din Februarie 02, 2013, 14:36:53 Am incercat exemplul tau si functioneaza.
Dar daca introduc abcefgfgfg si abababofgfgfg ar trebui sa-mi returneze nu rimeaza, din pacate returneaza tot rimeaza. Nu stiu ce se intampla. #-o Utilizez CodeBlocks 12.12 si compilatorul GNU GCC Compiler. Titlul: Răspuns: problema siruri Scris de: Radu-Andrei Szasz din Februarie 02, 2013, 14:40:34 @Simoiu Robert: E gresit algoritmul tau.
Da testul: arc darcfearc si o sa te convingi(al tau da "NU RIMEAZA"). Cod: #include <stdio.h> Asta ar trebui sa mearga :) @Dragu Mircea Cele 2 siruri date de tine rimeaza. Ambele au sufixele fgfgfg. Titlul: Răspuns: problema siruri Scris de: Dragu Mircea din Februarie 02, 2013, 14:52:37 Nu, din pacate nici de aceasta data nu functioneaza.
Cele 2 siruri nu rimeaza : abcefgfgfg si abababofgfgfg In enuntul problemei se spune ca "spunem ca doua cuvinte rimeaza daca sufixele incepand de la ultima vocala sunt identice." Adica in cazul celor doua siruri : sufixul sirului "abcefgfgfg" incepand de la ultima vocala este : efgfgfg sufixul sirului "abababofgfgfg" incepand de la ultima vocala este : ofgfgfg Titlul: Răspuns: problema siruri Scris de: Radu-Andrei Szasz din Februarie 02, 2013, 15:15:44 Atunci trebuie doar scos +1 de la strcpy si va functiona.
Am editat raspunsul ca sa functioneze :) Titlul: Răspuns: problema siruri Scris de: Simoiu Robert din Februarie 02, 2013, 16:29:24 Sau merge cu forul invers, am vazut ulterior dar nu am fost la PC sa pot sa raspund. Vezi daca merge algoritmul dat de Radu, si daca nu merge eventual rescriu eu.
Titlul: Răspuns: problema siruri Scris de: Dragu Mircea din Februarie 02, 2013, 16:48:37 Am incercat si cu forul invers, am incercat si varianta sugerata de Radu.
Nu merge niciuna, nu stiu unde gresesc. Titlul: Răspuns: problema siruri Scris de: Simoiu Robert din Februarie 02, 2013, 16:55:05 Zi-mi tu un test pe care ultima sursa postata de Radu (repet editata) nu merge. Mie-mi merg toate.
Titlul: Răspuns: problema siruri Scris de: Dragu Mircea din Februarie 02, 2013, 17:04:12 Doua cuvinte : "abcefgfgfg" si "bababaofgfgfg", compilez si raspunsul (normal, de altfel) NU RIMEAZA.
Daca introduc : "abcefgfgfg" si "bababaefgfgfg", compilez, raspunsul este acelasi. Mai jos este codul : #include <stdio.h> #include <string.h> #include<stdlib.h> int vocala(char voc) { switch(voc) { case 'a' : case 'e' : case 'i' : case 'o' : case 'u' : return 1; default : return 0; } } int strlung(char sir[]) { int i=0; while(sir) i++; return i; } char *sufix(char sir[]) { int i; for(i=0; i<strlung(sir); i++) if(vocala(sir) == 1) strcpy(sir, sir+1); return sir; } int main() { char sir_1[100], sir_2[100]; printf("\n Introduceti primul cuvant : "); gets(sir_1); printf("\n Introduceti al doilea cuvant : "); gets(sir_2); if(strcmp(sufix(sir_1), sufix(sir_2)) == 0) printf("\n RIMEAZA\n"); else printf("\n NU RIMEAZA\n"); } Titlul: Răspuns: problema siruri Scris de: Simoiu Robert din Februarie 02, 2013, 17:05:45 Mie imi da ca RIMEAZA (la ultimul). Codul este acesta :
Cod: #include <stdio.h> Titlul: Răspuns: problema siruri Scris de: Radu-Andrei Szasz din Februarie 02, 2013, 17:22:16 Pe testul pe care tu ai zis ca da NU RIMEAZA, desi corect ar fi RIMEAZA, sursa mea da RIMEAZA. In codul postat de tine ai uitat sa pui i = 0 dupa strcpy.
PS foloseste tag-ul code cand postezi cod :) Titlul: Răspuns: problema siruri Scris de: fdproxy din Februarie 12, 2013, 15:44:44 Cod: #include <string> |