Multidesk.be » Forums » C en C++ » array omdraaien? (gesloten)

Helpinformatie
Dit onderwerp bevindt zich in het archief.
Het is bijgevolg niet mogelijk er nog op te reageren.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door een gast op dinsdag 3 mei 2005 om 11:51:52.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
hallo

ik heb een 2dimensionale array die ik graag wil omdraaien.

nu is het zo

array[1,0] = test
array[0,1] = anders

het moet worden

array[1,0] = anders
array[0,1] = test

(dit is een voorbeeld de echte array is veel groter)

weet iemand hoe ik dit kan oplossen??
^ Reactie #1 geschreven door rObkE op dinsdag 3 mei 2005 om 11:58:18.
rObkE heeft nog geen avatar toegevoegd
Multiviteit: 3765
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Nog een array maken en met een for lus die ene aflopen en omgekeerd in de andere steken? :?
^ Reactie #2 geschreven door een gast op dinsdag 3 mei 2005 om 11:59:34.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
o ja dat was ik vergeten te zeggen.

ik wil niet nog een array aanmaken

:D
^ Reactie #3 geschreven door Martijn op dinsdag 3 mei 2005 om 12:03:30.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Maak gebruik van een hulpvariable in je for lus?
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #4 geschreven door Tom op dinsdag 3 mei 2005 om 17:04:11.
Tom's avatar
Multiviteit: 254
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
k, uit je vraag begrijp ik dus dat je de array wilt spiegelen ten overstaande van zijn centrale as (1,1)

1e opmerking: dit veronderstelt dat het een array is met gelijke dimensies (lengte gelijk aan breedte)

1e punt qua performantie : de centrale as dien je niet te spiegelen die blijft gelijk
2e punt, als je alle elementen onder de centrale as afloopt en vervangt door corresponderende elementen boven de as heb je al het werk al gedaan

CODE
  1.  
  2. for (int i=1; i<array.length; i++)
  3. {
  4.   for (int j=0; j<i ; j++)
  5.   {
  6.      hulpvar=array[i][j];
  7.      array[i][j]=array[j][i];
  8.      array[j][i]=hulpvar;
  9.   }
  10. }
  11.  


tadaa
^ Reactie #5 geschreven door een gast op woensdag 4 mei 2005 om 13:40:33.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid

Dixit


1e opmerking: dit veronderstelt dat het een array is met gelijke dimensies (lengte gelijk aan breedte)


Dit is nu het geval omdat ik statische array`s gebruik, maar is dadelijk niet meer het geval omdat ik nu van plan ben arraylist`s te maken.

Maar inderdaad voor het probleem met de statische array`s is dit een mooie oplossing met die hulpvar.

Groeten koen
^ Reactie #6 geschreven door Tom op woensdag 4 mei 2005 om 19:51:19.
Tom's avatar
Multiviteit: 254
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid

Dixit

Gast (op 04/05/2005 13:40:33) zei:
Dit is nu het geval omdat ik statische array`s gebruik, maar is dadelijk niet meer het geval omdat ik nu van plan ben arraylist`s te maken.

Maar inderdaad voor het probleem met de statische array`s is dit een mooie oplossing met die hulpvar.

Groeten koen

wel, je kan niet-vierkante matrices simpelweg niet spiegelen

dus voor een array met variabele dimensies ga je met een serieus probleem zitten
dan zul je wel een nieuwe array van arrays moeten aanmaken om het gewenste resultaat te krijgen

nog ff een opmerking
eigenlijk is gans dat spiegel gedoe totaal nutteloos
je kan net zo goed gewoon alle getallen gespiegeld uitlezen door de kolom index en de rij index te wisselen.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten