problema con un arreglo :c

Iniciado por [ ], 22 Abril 2018, 04:02 AM

0 Miembros y 1 Visitante están viendo este tema.

[ ]

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 (cpp) [Seleccionar]
#include<iostream>
#include<stdlib.h>
using namespace std;

class vector{
private:
int v[4], i, j, aux;
public:
vector(){}
~vector(){}

void leer(){
cout<<"Introducir 10 valores: "<<endl;
for(i = 0; i < 4; i++){
cout<<"digite el numero "<<i+1<<": ";
cin>>v[i];
}
system("cls");
}

void ordenar(){
for(j = 0; j <4; j++){
for(i = 0; i < 4; i++){
if(v[i] > v[i+1]){
aux = v[i];
v[i] = v[i+1];
v[i+1] = aux;
}
}
}
}

void mostrar(){
cout<<"Orden Introducido:\n";
for(i = 0; i < 4; i++){
cout<<v[i]<<endl;
}
ordenar();
cout<<"\nOrden de menor a mayor:\n"<<endl;
for(i = 0; i < 4; i++){
cout<<v[i]<<endl;
}
}
};

int main(){
vector V;

V.leer();
V.mostrar();
return 0;
}

Kenji-chan

tu método de ordenamiento esta mal implementado


void ordenar(){
    for(j = 0; j <4; j++){
        for(i = 0; i < 4-j; i++){
    if(v[i] > v[i+1]){
        aux = v[i+1];
v[i+1] = v[i];
v[i] = aux;
    }
        }
    }
}

[ ]

huy gracias viejo ya estaba volviendome loco eso!