Título: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
Publicado por: creiko en 15 Junio 2016, 10:01 am
buenas lo que tengo que hacer es una matriz de 5*5 coger la ultima fila y ordenar sus numero de mayor a menor ejemplo: 5 3 2 4 6 8 4 8 4 3 9 2 3 1 7 5 7 9 3 1 2 8 4 3 6 ordenada deberia quedar asi 5 3 2 4 6 8 4 8 4 3 9 2 3 1 7 5 7 9 3 1 8 6 4 3 2 hice lo mismo pero con columnas y me da perfecto pero no lo puedo hacer con las filas dejo lo que hice con las columna central de una matriz espero que alguien em de uan idea o me ayude gracias #include "stdio.h" #include "conio.h" #include "string.h" #include "windows.h" #include "stdlib.h" #include "time.h" #include "iostream" #include "stdlib.h" main () { int i,j,ma[5][5]; int temp; printf("\tEsta es la Matriz Original: \n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { ma[i][j]=1+rand()%(9); } } for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%d ",ma[i][j]); } printf("\n"); } for(int i = 0; i < 5-1; i++) for(int j = 0; j < 5; j++) if(ma[j][2] < ma[i+1][2]) { temp = ma[j][2]; ma[j][2] = ma[i+1][2]; ma[i+1][2] = temp; } printf("\n Matriz Organizada por la columna central: \n"); for( int i = 0; i < 5; i++) { printf("\n"); for(int j = 0; j < 5; j++) printf("% d",ma[i][j]); } }
Título: Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
Publicado por: class_OpenGL en 15 Junio 2016, 13:57 pm
¿Cuál es exactamente el problema? Da la impresión de que ni tu mismo entiendes el código xDD. Di el problema más concretamente que tienes :D
Título: Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
Publicado por: AlbertoBSD en 15 Junio 2016, 14:07 pm
Tienes que seleccionar un algoritmo de ordenamiento. Y de preferencia tratar solo a los ultimos 5 elementos como u arreglo individual. Te dejo uno de mis videos sobre matrices U-zA-VvOllM Si usas ese metodo puedes posteriormente solo apuntar a los 5 ultimos con: int *ordenar = NULL; //... ordenar = &matriz[N*M- 5]
y ordenar solo un arreglo lineal de 5 numeros. Saludos
Título: Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
Publicado por: creiko en 15 Junio 2016, 16:13 pm
lo que pasa es que no me muestra bien los resultados Matriz original 1 7 9 6 4 9 3 3 7 1 8 2 6 9 2 5 5 5 9 5 6 4 2 5 4 deberia quedar asi 1 7 9 6 4 9 3 3 7 1 8 2 6 9 2 5 5 5 9 5 6 5 4 4 2 pero me los muestra así ahí el error 1 7 9 6 4 9 3 3 7 1 8 2 6 9 2 5 5 5 9 5 6 6 6 6 4 #include "windows.h" #include "stdlib.h" #include "time.h" #include "iostream" #include "stdlib.h" main () { int i,j,ma[5][5]; int temp; srand (time(NULL)); printf("\tEsta es la Matriz Original: \n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { ma[i][j]=1+rand()%(9); } } for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%d ",ma[i][j]); } printf("\n"); } for(int i = 0; i < 5-1; i++) for(int j = 0; j < 5; j++) if(ma[4][j] < ma[4][i+1]) { temp = ma[4][i]; ma[4][j] = ma[4][i+1]; ma[4][i+1] = temp; } printf("\n Matriz Organizada por la ultima fila: \n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%d ",ma[i][j]); } printf("\n"); } }
Título: Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
Publicado por: class_OpenGL en 15 Junio 2016, 16:55 pm
Prueba con el siguiente fragmento for(i = 0; i < 5-1; i++) { for(j = i+1; j < 5; j++) { // Tendrías que empezar por i+1 if(ma[4][i] < ma[4][j]) { // La comparación estaba mal temp = ma[4][i]; // En general, los cambios estaban mal ma[4][i] = ma[4][j]; ma[4][j] = temp; } } }
Título: Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
Publicado por: creiko en 15 Junio 2016, 22:33 pm
Después de tanto hacer ya lo pude solucionar me llevo un poco de tiempo estaba mal en las condiciones como decias #include "stdio.h" #include "conio.h" #include "string.h" #include "windows.h" #include "stdlib.h" #include "time.h" #include "iostream" #include "stdlib.h" main () { int i,j,ma[5][5]; int temp; srand (time(NULL)); printf("\tEsta es la Matriz Original: \n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { ma[i][j]=1+rand()%(9); } } for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%d ",ma[i][j]); } printf("\n"); } for(int i = 0; i < 5-1; i++) for(int j = 0; j < 5; j++) if(ma[j][2] > ma[i+1][2]) { temp = ma[j][2]; ma[j][2] = ma[i+1][2]; ma[i+1][2] = temp; } printf("\n Matriz Organizada por la columna central: \n"); for( int i = 0; i < 5; i++) { printf("\n"); for(int j = 0; j < 5; j++) printf("% d",ma[i][j]); } }
|