Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: cazagavilan en 16 Abril 2011, 10:28 am



Título: duda con while
Publicado por: cazagavilan en 16 Abril 2011, 10:28 am
Hola, se supone que tengo que hacer un programa en el que el usuario introduce un numero , el programa tiene que empezar a contar desde 1 hasta que llega al numero del usuario y parar, lo he intentado pero me da numeros sin parar, a ver si me podeis ayudar gracias.
Código
  1.  
  2.  
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. int main()
  7.  
  8. {
  9. int n;
  10. int l = 1;
  11. cout <<"Escribe el numero que desees: ";
  12. cin >> n;
  13. while (n = n){
  14.  
  15. cout << l << " ,","\n";
  16. ++l;
  17. }
  18. return 0;
  19. }

P.D: tambien tengo que hacer que los numero salgan en 10 columnas pero eso ya me apañare luego.
Gracias de nuevo.


Título: Re: duda con while
Publicado por: Akai en 16 Abril 2011, 11:35 am
Creo que deberías revisar la teoría. Tu condición del while lo único que te lleva es a un bucle infinito, ya que haces lo siguiente:

(recordemos que = es ASIGNAR, == COMPARAR)

mientras a la n le pongo lo que hay en n: pinto l, incremento l.

asignar a n lo que hay en n únicamente es FALSO si n es 0.

Por otro lado, estás usando cout de una forma un tanto... oscurilla con esto: <<" ,","\n"  quedaría mejor así:

<< " ,\n"

La tabulación es \t

Y como cambiar el bucle para que haga lo que ti quieres hacer, te lo dejo a ti.


Título: Re: duda con while
Publicado por: cazagavilan en 16 Abril 2011, 11:38 am
muchas gracias.


Título: Re: duda con while
Publicado por: Danyel_Casvill en 16 Abril 2011, 18:28 pm
quedaria mas facil usando un if


Título: Re: duda con while
Publicado por: ssaammuu en 16 Abril 2011, 18:48 pm
Y aun con ==, el bucle es infinito n siempre va a ser igual a n... así que seguramente te habrás equivocado ahí.

A lo mejor querías
Código:
while (l<n)
?


Título: Re: duda con while
Publicado por: cazagavilan en 16 Abril 2011, 19:36 pm
muchas gracias ya lo he conseguido completar todo ;)