Programación General > C/C++
simple burbuja, se me queda colgado
picyo:
hola! vereis, estoy recordando un poco el C++ desde lo mas básico, como sería el método de ordenacion de la burbuja, pero tengo un problema: se me queda colgado... y no por que...alguien ve algo ?
--- Código: C++ --- #include <iostream>using namespace std; int main(void){ int array[10]; int valores[9]; int x,q,temporal,TAM,i,j,temp; //for(int x=0;x=9;x++) { x=0; while (x<10){ cout << "pon un numero"<<endl; cout << "Numero("; cout <<x; cout <<"): "; cin >> array[x]; cin.get(); x++; } cout << "empieza la ordenacion" << endl; for (int i=0;i=10-1;i++){ for(int j=i+1;j=10;j++){ if (array[i]>array[j]){ temp=array[i]; array[i]=array[j]; array[j]=temp; } } } for (int i=0;i=10-1;i++){ cout<<array[i]; } cin.get(); return 0;}
diego.martinez:
--- Código: C++ --- for (int i=0;i=10-1;i++){ for(int j=i+1;j=10;j++){
las clausulas de terminación de estos for's estan mal!, no estas comprobando nada, estas asignando.
Creo que querias decir...
--- Código: C++ --- for (int i=0;i<10-1;i++){ for(int j=i+1;j<10;j++){
Ah, y en el ultimo for, tambien.
picyo:
si, es cierto!
NO creía que tuviese que poner, el error de ejecución estaba ahí, en la asignación del for.Vaya fallo... de todos modos no me ordena en todos los casos, pero bueno, eso ya corre de mi cuenta. gracias!!
diego.martinez:
te explico, por si acaso.
el for tiene 3 elementos
for ( inicialización ; clausula de continuación ; iteración )
El for comenzará haciendo lo que ponga en la Inicializacion nada mas arrancar. Despues si la clausula es TRUE (es cierta) entonces ejecuta el contenido de su bloque. Despues , ejecuta la iteración y vuelve a comprobar si la clausula de continuación es TRUE, y vuelve a ejecutar. Asi sucesivamente.
La clausula por lo tanto es una operación booleana, y por lo tanto se va a comparar si vale 0 o diferente de 0, dando igual que tipo de operación sea.
por ejemplo
for (int e=0; IsNotFinished() ; e++)
{
...
}
si IsNotFinished() devuelve false, entonces se romperia el for.
for (int e=0; array[e]!='';e++)
itera el array hasta encontrar el valor ''.
etc...
picyo:
Si, entiendo. creo que la mayoria de for's que he o hemos hecho han sido algo mecánicos. Creo que entiendo mucho más ahora.Tengo otra duda acerca de esta ordenacion de mi array. Ahora, quiero hacer el mismo programa ( que por cierto, si ordena bien, lo dije mal ) pero en Visual C++. Primero necesitaba hacerlo en plan DOS, para saber exactamente lo que hacia ( por eso este ejemplo cortito). Todo esto lo hago para aprender de una forma más o menos intuitiva, a programar en Visual X ( C++ ahora). Pongo mis pasos :
1. He creado un nuevo proyecto, con windows form.
2. Mi pretension es aplicar el anterior ejemplo hecho en C++ "estándar" pero con entorno gráfico de Windows.
3. Una ventana ( form1) que indique al usuario que ha de poner una serie de numeros, y un botón de "start", y luego otra ventana que sobresalga cuando el resultado de esa ordenacion este implementada.
de momento solo he puesto una ventana con un boton, el cual quiero asociar a start la ordenacion, pero no se que tipo de orden arrastrar ( visual) desde la lista de comandos para que el usuario escriba distintos numeros, voy bastante perdido
Navegación
[#] Página Siguiente
Ir a la versión completa