El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Matriz de enteros, ordenacion (C++)
Autor [holylance] Calificacion


(Click para Ampliar)


Crea una matriz de enteros sin signo entre con valores entre 0 y 100 y luego la ordena, la cantidad de filas y columnas son par?metros que se reciben por teclado.
Probado con el dev cpp version 4.0 y Visual C++ 6.0

#include
#include
#include
#include

void verMatriz(unsigned int** m,unsigned int filas,unsigned int columnas)
{
unsigned int i,j;
for(i=0;i {
cout << "[";
for(j=0;j {
cout << m[i][j];
if (j }
cout << "]" << endl;
}
}

void ordenarMatriz(unsigned int** m,unsigned int filas,unsigned int columnas)
{//algoritmo de burbuja, bubblesort
unsigned int i, filsxcols=filas*columnas,cambio=1;
unsigned int temp;
while(cambio)
{
cambio=0;
for(i=0;i+1 {
if (m[i/columnas][i%columnas] > m[(i+1)/columnas][(i+1)%columnas])
{
temp=m[i/columnas][i%columnas];
m[i/columnas][i%columnas]= m[(i+1)/columnas][(i+1)%columnas];
m[(i+1)/columnas][(i+1)%columnas]=temp;
cambio=1;
}
}
if(filsxcols) filsxcols--;
}
}

int main()
{

srand((unsigned int)time(0));
unsigned int filas=0;
unsigned int columnas=0;
unsigned int i;
unsigned int j;
unsigned int **matriz;
cout << "Por favor ingrese la cantidad de filas:";
cin >> filas;
cout << "Por favor ingrese la cantidad de columnas:";
cin >> columnas;

/*pidiendo memoria para la matriz*/
matriz=new (unsigned int*)[filas];
for(i=0;i {
matriz[i]=new unsigned int[columnas];
}

/*lleno la matriz de numeros al azar*/
for(i=0;i for(j=0;j matriz[i][j]=rand() % 101;


cout << "Matriz Original" << endl;
verMatriz(matriz,filas,columnas);
cout << "Presione una tecla para continuar..." << endl;
getchar();
ordenarMatriz(matriz,filas,columnas);
cout << "Matriz Ordenada" << endl;
verMatriz(matriz,filas,columnas);
cout << "Presione una tecla para continuar..." << endl;
getchar();

/*libero memoria de la matriz*/
for(i=0;i delete matriz[i];
delete matriz;


return 0;
}
?
Terminos de Uso

1 - Copiar o Descargarse este contenido implica aceptar los terminos aqui detallados.

2 - Usted puede utilizar este contenido en sus propios programas y puede compilarlo en un programa y modificarlo a su gusto.

3 - Usted NO PUEDE redistribuir este contenido tal como se presenta aqui sin el permiso del autor original del mismo.

4 - Usted seguir? cualquier restricci?n adicional del copyright que el autor pudo haber puesto en la descripci?n del contenido.

?

Contactos myStudio Network