Tema: Ayuda arrays
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/07/2008, 11:56
Xeep
 
Fecha de Ingreso: julio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda arrays

Estoy intentando hacer un programa que recoja 10 valores del teclado y los ordene de menor a mayor y luego de mayor a menor. Hasta ahora he hecho esto, que en teoria deberia funcionar pero el programa, tras recoger los 10 valores, se cierra. ¿Alguien que me pueda decir por qué?



#include <iostream>
using namespace std;

int main()
{
cout << "Introduce 10 valores:"<< endl;

//arrays necesarios.
double valores [10];
double valores2[10][10];
double valores3[10];

cin >> valores [1];
cin >> valores [2];
cin >> valores [3];
cin >> valores [4];
cin >> valores [5];
cin >> valores [6];
cin >> valores [7];
cin >> valores [8];
cin >> valores [9];
cin >> valores [10];

//variables para el bucle y la funcion .
int h;
int i=1;
int b = i+1;
int j = i-1;

//funcion que compara los dos primeros valores del primer array y los ordena de menor a mayor en el segundo de
//forma correlativa en las dos primeras posiciones.
if (valores [i] >= valores [b]) valores2 [i][b] = valores [i] , valores2 [i][i] = valores [b];
else valores2 [i][b] = valores [b] , valores2 [i][i] = valores [i];
i++;

//una vez ordenados los dos primeros valores, este bucle compara el resto de los valores en funcion del incremento
//y decremento de i,b,j guardando los valores ordenados en nuevas filas del array "valores2"
for (h = 1; h<=9; h++)
{
if (valores2 [j][i] >= valores [b]) valores2 [i][b] = valores2 [j][i] , valores2 [b][b] = valores [b];
else valores2 [i][b] = valores [b] , valores2 [b][b] = valores2 [j][i];
i++;
return 0;
}

//finalmente aqui se recogen los valores buenos en un tercer y ultimo array, tras haberse repetido el bucle
//anterior 9 veces y quedando finalmente todos los valores ordenados
valores3 [1] = valores2 [1][1];
valores3 [2] = valores2 [1][2];
valores3 [3] = valores2 [2][3];
valores3 [4] = valores2 [3][4];
valores3 [5] = valores2 [4][5];
valores3 [6] = valores2 [5][6];
valores3 [7] = valores2 [6][7];
valores3 [8] = valores2 [7][8];
valores3 [9] = valores2 [8][9];
valores3 [10] = valores2 [9][10];




//aqui se imprimen en pantalla los valores por orden de menor a mayor, tal como se han generado, y despues se
//imprime de nuevo con el orden invertido para lograr asi un orden de mayor a menor
cout <<"El orden de menor a mayor es:" <<endl;
cout <<valores3[1];
cout <<", " <<valores3[2];
cout <<", " <<valores3[3];
cout <<", " <<valores3[4];
cout <<", " <<valores3[5];
cout <<", " <<valores3[6];
cout <<", " <<valores3[7];
cout <<", " <<valores3[8];
cout <<", " <<valores3[9];
cout <<", " <<valores3[10];
cout <<"."<<endl;

cout <<endl;
cout <<"El orden de mayor a menor es:" <<endl;
cout <<valores3[10];
cout <<", " <<valores3[9];
cout <<", " <<valores3[8];
cout <<", " <<valores3[7];
cout <<", " <<valores3[6];
cout <<", " <<valores3[5];
cout <<", " <<valores3[4];
cout <<", " <<valores3[3];
cout <<", " <<valores3[2];
cout <<", " <<valores3[1];
cout <<"."<<endl;

cin.get();
cin.get();

return 0;
}