0 Daumen
54 Aufrufe

Frage:

matrix reverse rows in c

Ein 2-dimensionales Array von Integer Werten wird an diese Methode übergeben. Der Rückgabewert ist das übergebene Array, in dem die Werte der Spalten umgedreht (reversiert) sind.

C sharp 2D Arrays


Code:

Input
[ 1 2 3 ]
[ 4 5 6 ]
[ 7 8 9 ]

Ergebnis – die Werte in den Spalten sind umgedreht:


[ 7 8 9 ]
[ 4 5 6 ]
[ 1 2 3 ]

Kann jemand mir hier weiter helfen?

von

1 Antwort

0 Daumen

Halloo kingboy!

Ich kann dir nur ein herkömmliches c++ Programm anbieten. Vielleicht kannst du es umschreiben:

#include <iostream>

void ShowArray(std::string titel, int array[3][3])
{
int row, col;
std::cout << titel << std::endl;

for (row = 0; row < 3; row++)
{
  for (col = 0; col < 3; col++)
  {
    std::cout << array[row][col] << " "; 
  }
  std::cout << std::endl;
}   
}

int main(int argc, char **argv)
{
int row, col;
int quelle[3][3]={{ 1, 2, 3},
                { 4, 5, 6},
                { 7, 8, 9}};

int ziel[3][3] = {0};

std::cout << "Werte in Array aendern" << std::endl;
ShowArray("Quell-Array:", quelle);


for (row = 0; row < 3; row++)
{
  for (col = 0; col < 3; col++)
  {
    ziel[2-row][col] = quelle[row][col]; 
  }
  std::cout << std::endl;


ShowArray("Ziel-Array:", ziel);

return 0;
}


Würdest du in diese Zeile:

ziel[2-row][col] = quelle[row][col];  

so schreiben:

ziel[2-row][2-col] = quelle[row][col];  


So wäre der Inhalt der Spalten auch umgedreht.

Die Ausgabe sieht dann im ersten Fall so aus:

Werte in Array aendern
Quell-Array:
1 2 3
4 5 6
7 8 9



Ziel-Array:
7 8 9
4 5 6
1 2 3
Hit any key to continue...


Das ganze kannst du aber auch ganz in Funktionen (später Methoden) verpacken:

#include <iostream>
#include <cstdlib> // wegen EXIT_SUCCESS

void ShowArray(std::string titel, int array[3][3])
{
int row, col;

std::cout << titel << std::endl;

for (row = 0; row < 3; row++)
{
  for (col = 0; col < 3; col++)
  {
    std::cout << array[row][col] << " "; 
  }
  std::cout << std::endl;
}   
}

void CopyArrayReverse(int (*ziel)[3][3], int quelle[3][3])
{
int row, col; 

for (row = 0; row < 3; row++)
{
  for (col = 0; col < 3; col++)
  {
    (*ziel)[2-row][col] = quelle[row][col]; 
  }
  std::cout << std::endl;

}

int main(int argc, char **argv)
{
int row, col;
int quelle[3][3]={{ 1, 2, 3},
                { 4, 5, 6},
                { 7, 8, 9}};
int ziel[3][3] = {0};

std::cout << "Werte in Array aendern V0.2" << std::endl;
ShowArray("Quell-Array:", quelle);
CopyArrayReverse(&ziel, quelle);
ShowArray("Ziel-Array:", ziel);

return EXIT_SUCCESS;
}

von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
0 Daumen
1 Antwort
0 Daumen
1 Antwort
Gefragt 25 Mär 2018 von Gast

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community