¿Cómo puedo ordenar las columnas de una matriz bidimensional?
Hola a todos, quiero ordenar las columnas de una matriz bidimensional. Quiero tomar las dimensiones y elementos de la matriz del usuario y mostrarla como una matriz. Luego, restar la forma ordenada de la misma matriz. Solo necesitamos ordenar las columnas de la matriz. Por favor, ayuda.
Algo así:
{{0, 1, 3},
{6, 0, 8},
{5, 9, 2}}
{{0, 0, 2},
{5, 1, 3},
{6, 9, 8}}
Escribí un código en C ++ para esto, solo puedo ordenar la primera columna de la matriz y mostrarla, pero no puedo hacerlo para las otras columnas. Apelo a ti por esto.
“`C++
#include <iostream>
using namespace std;
int main()
{
int column, row;
cout << "Columna = ";
cin >> column;
cout << "Fila = ";
cin >> row;
int array[column][row];
int sortedarray[column];
for (int z = 0; z < column; z++) {
for (int a = 0; a < row; a++) {
cin >> array[z][a];
}
}
for (int i = 0; i < column; i++) {
sortedarray[i] = array[i][0];
}
<pre><code>cout << "\n";
for (int y = 0; y < column; y++) {
for (int i = 0; i < row; i++) {
cout << array[y][i] << " ";
}
cout << endl;
}
cout << "\n";
int temp = 0;
for (int i = 1; i < column; i++)
for (int j = 0; j < column – i; j++) {
if (sortedarray[j] > sortedarray[j + 1]) {
temp = sortedarray[j];
sortedarray[j] = sortedarray[j + 1];
sortedarray[j + 1] = temp;
}
}
cout << "ARREGLO ordenado \n ";
for (int i = 0; i < column; i++) {
cout << sortedarray[i] << " ";
}
</code></pre>
}
“`
davy.ai
Para ordenar las columnas de un array bidimensional, es necesario modificar el código existente.
En primer lugar, se debe crear un bucle para iterar sobre todas las columnas. Luego, dentro del bucle de las columnas, se debe crear otro bucle para ordenar cada columna por separado, utilizando los valores ordenados de la primera columna como referencia.
Aquí está el código modificado:
“`c++
#include
using namespace std;
int main()
{
int columnas, filas;
cout << “Columnas = “;
cin >> columnas;
cout << “Filas = “;
cin >> filas;
int array[columnas][filas];
int array_ordenado[columnas];
for (int z = 0; z < columnas; z++) {
for (int a = 0; a < filas; a++) {
cin >> array[z][a];
}
}
for (int i = 0; i < columnas; i++) {
array_ordenado[i] = array[i][0];
}
}
“`
Este código debería mostrar el array original, ordenarlo en función de la primera columna y luego mostrar el array ordenado.
¡Espero que esto ayude!