SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: yedson en Martes 24 de Agosto de 2010, 14:48

Título: Solucionen este conveniente Gracias
Publicado por: yedson en Martes 24 de Agosto de 2010, 14:48
Por favor ayuden con este codigo, no entiendo el pseudocodigo, lo hice como mas o menos estaba en un libro pero no me da la respuesta deseada
Código: C++
  1. #include<iostream.h>
  2. void main(void)
  3. {
  4. int i=0,s=0,n;
  5. cout<<"Ingrese N:"; cin>>n;
  6.  while(i<=n)
  7.  {
  8.   i=i+1;
  9.   s=s+i;
  10.  }
  11.  cout<<"La Suma de los "<<n<<" primeros numeros es:"<<s;
  12. }
  13.  

el codigo compila pero no me da la respuesta deseada lo que quiero es la suma de los "n" primeros numeros
Título: Re: Solucionen este conveniente Gracias
Publicado por: ProfesorX en Martes 24 de Agosto de 2010, 19:04
El problema esta la condicion del while, preguntas si i < n (n es el limite) pero dentro del ciclo incrementas i antes de sumar el numero, por lo tanto i siempre contendra un numero siguiente al limite, y te sumara un numero mas, o sea que si quieres la suma de los numeros del 1 al 6, te sumara del 1 al 7, si quieres del 1 al 7 te sumara hasta el 8 y asi sucesivamente.

La solucion seria cambiar la condicion de while de menor o igual a solo menor:

Código: C++
  1.  
  2.  while(i<n)
  3.  
  4.  

Haciendo ese pequeño cambio debe funcionar correctamente.

Saludos :)
Título: Gracias
Publicado por: yedson en Miércoles 25 de Agosto de 2010, 03:21
Muy agradecido espero tener respuestas tuyas, en los siguientes inconvenientes ke tenga nos vemos...