Aleksandr Posted March 13, 2013 Share Posted March 13, 2013 Salut, revin din nou cu un alt topic, cu o nouă problemă.. M-am apucat să rezolv: "Să se rearanjeze elementele unei matrice de dimensiune nxm, astfel încât ele să fie ordonate crescător atât pe linii cât şi pe coloane". Exemplu: n=3, m=4, matrice: 3 1 8 9 se va afişa: 0 1 1 2 4 6 5 7 3 3 4 5 2 0 1 3 6 7 8 9 M-am gândit sa parcurg matricea de două ori, pornind cu i-ul de la 1 la n şi cu j-ul de la 1 la m, iar apoi, l de la i+1 la n, iar k de la j+1 la m, după care am realizat ordonarea crescătoare.. dar observ că ceva nu e bun.. nu mi le ordonează corect.. Screenshot: Orice idee e bine venită . Link to comment Share on other sites More sharing options...
5061756C Posted March 13, 2013 Share Posted March 13, 2013 Metoda 1: Faci un vector din matrice, il ordinezi, apoi il faci matrice Nu imi merge codeblocks.. try http://informaticanonsotp9.blogspot.ro/2010/11/01112010-ordonarea-matricei-pe-lini-si.html http://hackpedia.info/viewtopic.php?t=12368 1 Link to comment Share on other sites More sharing options...
Aleksandr Posted March 13, 2013 Author Share Posted March 13, 2013 Metoda 1: Faci un vector din matrice, il ordinezi, apoi il faci matrice Nu imi merge codeblocks.. try http://informaticano...pe-lini-si.html http://hackpedia.inf...pic.php?t=12368 Hm, îmi ordonează doar pe fiecare linie, pe fiecare coloană.. eu nu sunt chiar aşa bun în domeniu', nu am idee cum ordonez toată matricea, fără să ţin cont de linii/coloane, să ordoneze de la cel mai mic, la cel mai mare.. Apreciez, mulţumesc mult. Link to comment Share on other sites More sharing options...
5061756C Posted March 13, 2013 Share Posted March 13, 2013 (edited) Hm, îmi ordonează doar pe fiecare linie, pe fiecare coloană.. eu nu sunt chiar aşa bun în domeniu', nu am idee cum ordonez toată matricea, fără să ţin cont de linii/coloane, să ordoneze de la cel mai mic, la cel mai mare.. Apreciez, mulţumesc mult. Aaaa deci doar pe linie, am inteles. for(int i=1; i<=n ; i++) { for(int j=1; j<m; j++) for(int k=j+1; k<=m k++) if(a[j]>a[k]) { interschimbare } } Nu stiu daca merge dar asa imi vine in minte.. Parcurgi fiecare linie din matrice si pui 2 for-uri pentru ordonare. Edited March 13, 2013 by Paulsk Link to comment Share on other sites More sharing options...
Aleksandr Posted March 13, 2013 Author Share Posted March 13, 2013 Aaaa deci doar pe linie, am inteles. for(int i=1; i<=n ; i++) { for(int j=1; j<m; j++) for(int k=j+1; k<=m k++) if(a[j]>a[k]) { interschimbare } } Nu stiu daca merge dar asa imi vine in minte.. Parcurgi fiecare linie din matrice si pui 2 for-uri pentru ordonare. E acelaşi lucru, deci nu trebuie să ţinem cont de linie/coloană, el trebuie doar să ordoneze de la cel mai mic element la cel mai mare şi afişat pe prima linie cele mai mici, apoi celelalte.. şi tot aşa. Link to comment Share on other sites More sharing options...
Jackie Dee Posted March 30, 2013 Share Posted March 30, 2013 Closed, old. Deschide alt topic daca mai ai nevoie de ajutor. Link to comment Share on other sites More sharing options...
Recommended Posts