Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: [ ] en 22 Abril 2018, 04:02 am



Título: problema con un arreglo :c
Publicado por: [ ] en 22 Abril 2018, 04:02 am
la idea es introducir numeros aleatorios, y luego mostrarlo en el orden introducido y luego mostrarlo en orden ascendente, la cuestion esta en que no me ordena y lo que hace es repetir un numeros varias veces, esto es lo que tengo.

Código
  1. #include<iostream>
  2. #include<stdlib.h>
  3. using namespace std;
  4.  
  5. class vector{
  6. private:
  7. int v[4], i, j, aux;
  8. public:
  9. vector(){}
  10. ~vector(){}
  11.  
  12. void leer(){
  13. cout<<"Introducir 10 valores: "<<endl;
  14. for(i = 0; i < 4; i++){
  15. cout<<"digite el numero "<<i+1<<": ";
  16. cin>>v[i];
  17. }
  18. system("cls");
  19. }
  20.  
  21. void ordenar(){
  22. for(j = 0; j <4; j++){
  23. for(i = 0; i < 4; i++){
  24. if(v[i] > v[i+1]){
  25. aux = v[i];
  26. v[i] = v[i+1];
  27. v[i+1] = aux;
  28. }
  29. }
  30. }
  31. }
  32.  
  33. void mostrar(){
  34. cout<<"Orden Introducido:\n";
  35. for(i = 0; i < 4; i++){
  36. cout<<v[i]<<endl;
  37. }
  38. ordenar();
  39. cout<<"\nOrden de menor a mayor:\n"<<endl;
  40. for(i = 0; i < 4; i++){
  41. cout<<v[i]<<endl;
  42. }
  43. }
  44. };
  45.  
  46. int main(){
  47. vector V;
  48.  
  49. V.leer();
  50. V.mostrar();
  51. return 0;
  52. }


Título: Re: problema con un arreglo :c
Publicado por: Kenji-chan en 22 Abril 2018, 04:44 am
tu método de ordenamiento esta mal implementado

Código
  1. void ordenar(){
  2.    for(j = 0; j <4; j++){
  3.        for(i = 0; i < 4-j; i++){
  4.    if(v[i] > v[i+1]){
  5.        aux = v[i+1];
  6. v[i+1] = v[i];
  7. v[i] = aux;
  8.    }
  9.        }
  10.    }
  11. }
  12.  


Título: Re: problema con un arreglo :c
Publicado por: [ ] en 22 Abril 2018, 05:03 am
huy gracias viejo ya estaba volviendome loco eso!