ESTRUCTURAS REPETITIVAS

Moderador: ivancp

Temas sobre programacion en C/C++ (no Visual C++)

ESTRUCTURAS REPETITIVAS

Notapor luis18unmsm » Lun Nov 08, 2010 11:08 am

QUIERO QUE LA SUMA TERMINE CUANDO SE DIGITA EL CARACTER ASTERISCO. NO PUEDO EJECUTARLO POR SE VUELVE INFINITO. ME PODRIAN AYUDAR.
GRACIAS.
ESTE ES EL CODIGO EN DEV C++


#include <iostream.h>
#include <conio.h>

int main()
{
int suma,n,i;

suma=0;

do
{cout<<"ingrese los numeros a sumar: ";cin>>n;
suma=suma+n; }
while(n!=*);

cout<<"\nla suma es: "<<suma<<endl;

getch();
}
luis18unmsm
Novato
Novato
 
Mensajes: 2
Registrado: Lun Nov 08, 2010 10:53 am


Re: ESTRUCTURAS REPETITIVAS

Notapor ivancp » Lun Nov 08, 2010 12:29 pm

Hola,

Tu programa se cuelga por que ya no hay enteros para leer desde la entrada estandar, cuando ingresas por el teclado un asterisco éste es reconocido como caracter y como no tienes ninguna instruccion para leer un caracter el programa se cuelga en el bucle.

Para evitar eso puedes realizar las siguientes modificaciones:
Código: Seleccionar todo
  1. #include <iostream>

  2. using namespace std;

  3. int main()

  4. {

  5.         int suma,n,i;

  6.         suma=0;

  7.         cout<<"Ingrese los numeros a sumar: \n";

  8.         while(cin>>n)

  9.         {

  10.                 suma=suma+n;

  11.         }

  12.         cout<<"\nla suma es: "<<suma<<endl;

  13. }



La siguiente linea se ejecutará mientras haya una entrada (numeros) y si encuentra algun otro caracter devolverá un EOF o algo parecido y saldrá del while.
Código: Seleccionar todo
  1. while(cin>>n)


Si presionas un asterisco la entrada no se leerá y tambien saldra del while. Para salir voluntariamente puedes enviar un EOF con Ctrl+Z en windows o Ctrl+D en linux,

Aqui una muestra de la ejecucion del codigo:
Código: Seleccionar todo
  1. Ingrese los numeros a sumar:

  2. 1

  3. 3

  4. 4

  5. 3

  6. 4

  7. 5

  8.  4  56 6 7 87 *

  9. la suma es: 180

  10.  

Imagen @latindev | Mi Blog
Por favor lee las reglas del foro
Avatar de Usuario
ivancp
Colaborador
Colaborador
 
Mensajes: 680
Registrado: Jue Sep 06, 2007 12:58 pm


Re: ESTRUCTURAS REPETITIVAS

Notapor luis18unmsm » Mié Nov 10, 2010 9:29 am

muchas gracias por la respuesta.
este es el codigo que corri en dev c++.
Código: Seleccionar todo
  1. #include <iostream.h>

  2. #include <conio.h>

  3. using namespace std;

  4. int main()

  5. {

  6.    int suma,n,i;

  7.    suma=0;

  8.    cout<<"Ingrese los numeros a sumar: \n";

  9.    while(cin>>n)

  10.    {

  11.       suma=suma+n;

  12.    }

  13.    cout<<"\nla suma es: "<<suma<<endl;

  14.    getch();

  15. }

  16.  

luis18unmsm
Novato
Novato
 
Mensajes: 2
Registrado: Lun Nov 08, 2010 10:53 am


    

Volver a C/C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron