SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: elpollo12 en Lunes 23 de Julio de 2007, 00:36
-
Amigos, tengo una duda en cuanto al método de la burbuja. Este es mi código:
//Programa que calcule el rea de tres rectangulos y luego las ordene
//de forma ascendente utilizando la burbuja.
//Programado por: Jos‚ Alejandro Hern ndez Gonz lez. MAT-VZLA
#include<iostream.h>
#include<conio.h>
#include<dos.h>
# define n 3
void main()
{
textcolor(0);
textbackground(2);
float area[2][5],l1[2][5],l2[2][5],aux;
int i,j;
clrscr();
for(i=0;i<n;i++) {
cout<<"Ingrese el 1er lado: ";
cin>>l1;
cout<<"Ingrese el 2do lado: ";
cin>>l2;
area=(l1*l2);
cout<<"El rea es: "<<area<<endl;
}
getch(); //Comienza el m‚todo de la burbuja
for(i=0;i<n-1;i++) { //Ojo debe ser i<n-1
for(j=0;j<n;j++) {
if (area>area[j+1][j+1]) { //si quiero ordenar descendentemente cambio
//el > por <
aux=area;//Guardo el valor que estoy comparando en un auxiliar
area=area[j+1][j+1];//el valor de la segunda area lo intercambio cn la 1era
area[j+1][j+1]=aux;
}
}
} //Fin de la Burbuja
for(i=0;i<n;i++) { //ciclo para mostrar las areas ordendas
cout<<" "<<area;
}
getch();
}
El problema es que no se, porque se debe colocar en el primer for que inicia el metodo i<n-1 ...... si alguien me puede responder... se lo agradecería.
-
Bueno aqui consegui hacer este otro codigo, el cual creo que esta mejor... pero igual me gustaria saber poruqe se debe colocar en el anterior i<n-1.
//Método de la Burbuja
//Programado por: Jose Alejandro Hernandez Gonzalez
#include<iostream.h>
#include<conio.h>
main()
{
int num[4], aux,i,j;
clrscr();
for(i=0;i<5;i++) { //ciclo para pedir los numeros
cout<<"Ingrese un num: ";
cin>>num;//guardo el valor en un vector, tambien puedo trabajar con matriz
}//fin del ciclo
for(i=0;i<5;i++) { //comienza el metodo de la burbuja
for(j=0;j<5;j++) {
if(num<num[j]) {//Si quiero ordenarlo de forma descendente cambio
//el signo < por >
aux=num;
num=num[j];
num[j]=aux;
}
}
} //fin del metodo
cout<<"Los numeros ordenados son: "<<endl;
for(i=0;i<5;i++) { //Ciclo para presentar los numero ordenados
cout<<" "<<num;
}
getch();
return 0;
}
-
No es que "deba" obligadamente ponerse así, pero el -1 es porque en la última vuelta del ciclo, los valores ya están ordenados, por lo tanto es innecesaria.
Deberías hacer la prueba de escritorio o ejecutar el progrma paso a paso e ir viendo el valor que van tomando las variables.
-
ok muchas gracias angel k ido , seguire tu consejo a ver q tal!!!!!