Tema: Ayuda arrays
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/08/2008, 14:12
yackcae
 
Fecha de Ingreso: junio-2008
Mensajes: 63
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Ayuda arrays

Cita:
a menos que este muy equivocado, el valor de j sí cambia, pues j va en funcion de i, y al final del bucle, i++
El valor de j no cambia en función de i, j es una variable independiente de i, aquí te paso el código corregido, le he puesto muchos comentarios para que se vea que valor tiene cada variable:

Código:
#include <iostream>
using namespace std;

int main() 
{
    cout << "Introduce 10 valores:"<< endl; 
      
    double A [10]; 
    double B [10][10];
    double C [10];
    
    cin >> A [0];        
    cin >> A [1];
    cin >> A [2];
    cin >> A [3];
    cin >> A [4];
    cin >> A [5];
    cin >> A [6];
    cin >> A [7];
    cin >> A [8];
    cin >> A [9];
   
// Mis cambios comienzan aquí
int h;
int i=0; // i vale cero
int b = i+1;  // b vale 1
int j = i-1; // j vale -1
    
        if (A [i] >= A [b])  B [i][b] = A [i] , B [i][i] = A [b];
        else                 B [i][b] = A [b] , B [i][i] = A [i];
        i++; // Ahora i vale 1
        b=i+1; // Hay que actualizar el valor de b en función de i, ahora b es 2
        j=j+1; // Hay que actualizar el valor de j en función de i, ahora j es 0

        for (h = 0; h<=7; h++)
        {    
        if (B [j][i] >= A [b])  B [i][b] = B [j][i] , B [b][b] = A [b];
        else                    B [i][b] = A [b]    , B [b][b] = B [j][i];
        i++; // A partir de este punto los valores de i serán 2, 3, 4, 5, 6, 7, 8, llegará a 9 pero en ese punto termina el for.
        b=i+1; // Hay que actualizar el valor de b en función de i, sus valores serán 3, 4, 5, 6, 7, 8, 9, llegará a 10 pero en ese punto termina el for.
        j=j+1; // Hay que actualizar el valor de j en función de i, sus valores serán 1, 2, 3, 4, 5, 6, 7, llegará a 8 pero en ese punto termina el for.
        }
// A partir de este punto no he cambiado nada.

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

cout <<endl;   

          cout <<"El orden de mayor a menor es:" <<endl; 
cout << C[9]; 
cout <<", " << C[8]; 
cout <<", " << C[7]; 
cout <<", " << C[6]; 
cout <<", " << C[5]; 
cout <<", " << C[4]; 
cout <<", " << C[3]; 
cout <<", " << C[2]; 
cout <<", " << C[1]; 
cout <<", " << C[0]; 
cout <<"."<<endl;    
        
cin.get();
cin.get();
              
    return 0;
}
Aún no está ordenando correctamente, pero el código actual está bien, no debería producirse errores inesperados, lo que queda es corregir la forma en que ordena para que lo haga bien.

Cita:
Muchas gracias por tomarte las molestias de revisar todo esto y contestar
No hay de qué, es un placer poder ayudar.