elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor  (Leído 4,191 veces)
creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
« 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
Código
  1. #include "stdio.h"
  2. #include "conio.h"
  3. #include "string.h"
  4. #include "windows.h"
  5. #include "stdlib.h"
  6. #include "time.h"
  7. #include "iostream"
  8. #include "stdlib.h"
  9.  
  10. main ()
  11. {
  12. int i,j,ma[5][5];
  13. int temp;
  14. printf("\tEsta es la Matriz Original: \n");
  15. for(i=0;i<5;i++)
  16. {
  17. for(j=0;j<5;j++)
  18. {
  19. ma[i][j]=1+rand()%(9);
  20. }
  21. }
  22. for(i=0;i<5;i++)
  23. {
  24. for(j=0;j<5;j++)
  25. {
  26. printf("%d ",ma[i][j]);
  27. }
  28. printf("\n");
  29. }
  30. for(int i = 0; i < 5-1; i++)
  31. for(int j = 0; j < 5; j++)
  32.  
  33. if(ma[j][2] < ma[i+1][2])
  34.  
  35. {
  36. temp = ma[j][2];
  37. ma[j][2] = ma[i+1][2];
  38. ma[i+1][2] = temp;
  39. }
  40. printf("\n Matriz Organizada por la columna central: \n");
  41. for( int i = 0; i < 5; i++)
  42. {
  43. printf("\n");
  44. for(int j = 0; j < 5; j++)
  45. printf("% d",ma[i][j]);
  46. }
  47. }
  48.  
  49.  
  50.  



En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
« Respuesta #1 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


En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
« Respuesta #2 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



Si usas ese metodo puedes posteriormente solo apuntar a los 5 ultimos con:

Código
  1. int *ordenar = NULL;
  2. //...
  3. ordenar = &matriz[N*M- 5]

y ordenar solo un arreglo lineal de 5 numeros.

Saludos
« Última modificación: 15 Junio 2016, 14:13 pm por AlbertoBSD » En línea

creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
« Respuesta #3 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


Código
  1. #include "windows.h"
  2. #include "stdlib.h"
  3. #include "time.h"
  4. #include "iostream"
  5. #include "stdlib.h"
  6.  
  7. main ()
  8. {
  9. int i,j,ma[5][5];
  10. int temp;
  11. srand (time(NULL));
  12.  
  13. printf("\tEsta es la Matriz Original: \n");
  14. for(i=0;i<5;i++)
  15. {
  16. for(j=0;j<5;j++)
  17. {
  18. ma[i][j]=1+rand()%(9);
  19. }
  20. }
  21. for(i=0;i<5;i++)
  22. {
  23. for(j=0;j<5;j++)
  24. {
  25. printf("%d ",ma[i][j]);
  26. }
  27. printf("\n");
  28. }
  29. for(int i = 0; i < 5-1; i++)
  30. for(int j = 0; j < 5; j++)
  31.  
  32. if(ma[4][j] < ma[4][i+1])
  33.  
  34. {
  35. temp = ma[4][i];
  36. ma[4][j] = ma[4][i+1];
  37. ma[4][i+1] = temp;
  38. }
  39. printf("\n Matriz Organizada por la ultima fila: \n");
  40. for(i=0;i<5;i++)
  41. {
  42. for(j=0;j<5;j++)
  43. {
  44. printf("%d ",ma[i][j]);
  45. }
  46. printf("\n");
  47. }
  48. }
  49.  
  50.  
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
« Respuesta #4 en: 15 Junio 2016, 16:55 pm »

Prueba con el siguiente fragmento

Código
  1. for(i = 0; i < 5-1; i++) {
  2. for(j = i+1; j < 5; j++) { // Tendrías que empezar por i+1
  3. if(ma[4][i] < ma[4][j]) { // La comparación estaba mal
  4. temp = ma[4][i];      // En general, los cambios estaban mal
  5. ma[4][i] = ma[4][j];
  6. ma[4][j] = temp;
  7. }
  8. }
  9. }
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: hacer matriz 5 *5 y ordenar los numero de la última fila de mayor a menor
« Respuesta #5 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

Código
  1. #include "stdio.h"
  2. #include "conio.h"
  3. #include "string.h"
  4. #include "windows.h"
  5. #include "stdlib.h"
  6. #include "time.h"
  7. #include "iostream"
  8. #include "stdlib.h"
  9.  
  10. main ()
  11. {
  12. int i,j,ma[5][5];
  13. int temp;
  14. srand (time(NULL));
  15.  
  16. printf("\tEsta es la Matriz Original: \n");
  17. for(i=0;i<5;i++)
  18. {
  19. for(j=0;j<5;j++)
  20. {
  21. ma[i][j]=1+rand()%(9);
  22. }
  23. }
  24. for(i=0;i<5;i++)
  25. {
  26. for(j=0;j<5;j++)
  27. {
  28. printf("%d ",ma[i][j]);
  29. }
  30. printf("\n");
  31. }
  32. for(int i = 0; i < 5-1; i++)
  33. for(int j = 0; j < 5; j++)
  34.  
  35. if(ma[j][2] >  ma[i+1][2])
  36.  
  37. {
  38. temp = ma[j][2];
  39. ma[j][2] = ma[i+1][2];
  40. ma[i+1][2] = temp;
  41. }
  42. printf("\n Matriz Organizada por la columna central: \n");
  43. for( int i = 0; i < 5; i++)
  44. {
  45. printf("\n");
  46. for(int j = 0; j < 5; j++)
  47. printf("% d",ma[i][j]);
  48. }
  49. }
  50.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programa en vb (ordenar de mayor a menor)
Programación Visual Basic
jjam45 1 9,574 Último mensaje 19 Febrero 2006, 18:36 pm
por jjam45
Ordenar número de mayor a menor « 1 2 »
Programación Visual Basic
Nessito 14 16,292 Último mensaje 19 Mayo 2007, 20:09 pm
por Nessito
ordenar de mayor a menor 5 numeros ingresados x el teclado!!!
ASM
XxArCaNgElxX 0 19,280 Último mensaje 20 Mayo 2011, 21:19 pm
por XxArCaNgElxX
ayuda compañeros! programa c ordenar mayor a menor « 1 2 »
Programación C/C++
shikidos 11 11,656 Último mensaje 19 Enero 2015, 05:41 am
por engel lex
Numero mayor y numero menor!!!! (error)
Java
CharlyScoTT 2 3,869 Último mensaje 21 Octubre 2017, 19:46 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines