elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  DEV C++ 2+2 NO ES 4 ¬¬ (Resuelto)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: DEV C++ 2+2 NO ES 4 ¬¬ (Resuelto)  (Leído 2,172 veces)
vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
DEV C++ 2+2 NO ES 4 ¬¬ (Resuelto)
« en: 20 Marzo 2013, 04:17 am »

Hola compaeros!
La verdad es la primera vez que escribo en el foro, no por interes sino por ser un leigo en el tema de la programacion.
Eh decidido poner mano a la maza y aprender c++, me va bastante bien de momento excepto por un problema que no se que es y me preguntava si alguien con mejores luces y conocimientos que yo me puede decir el por que dev dice que 2+2 no es 4 y ya me estoy desesperando.
Segun el libro que estoy leendo todo esta bien, de echo el programa corre perfecto sin avisos de error.

pero creo que el error esta en la linea: int suma = num1 + num2;
Como dije segun el libro es perfectamente legal hacer esto pero ya no se que penzar.
Echen una mirada al codigo, es de lo mas extraño que vi, segun dev c++ si pongo 2+2 me dice que es 0 :/

Código:
#include <iostream>
#include <stdlib.h>


using namespace std;

int main ()
{

     int num1;
     int num2;

     int suma = num1 + num2; //creo que el problema esta aqui :(


     cout << "Introduce el primer numero\n"<<endl;
     cin >> num1;

     cout << "Introduce el segundo numero\n"<<endl;
     cin >> num2;

     cout << "El resultados es: " << suma << "\n" <<endl; //al invocar suma a mi no me sale por ejempo 2+2 me dice que es 0 :/

     system ("pause");
     return 0;
 }


De esta manera funciona pero no puedo asignar el resultado a una variablecomo el codigo de arriba??

Código:
#include <iostream>
#include <stdlib.h>


using namespace std;

int main ()
{

     int num1;
     int num2;


     cout << "Introduce el primer numero\n"<<endl;
     cin >> num1;

     cout << "Introduce el segundo numero\n"<<endl;
     cin >> num2;

     cout << "El resultados es: " << num1+num2 << "\n" <<endl; // si le hago asi si me funciona pero entonces
                                                               //no puedo trabajar con el resultado de la suma

     system ("pause");
     return 0;
 }


ayuuudaaaa no se que hacer :(((
Ya probe reinstalar el dev y ya lo probe en 3 PCs y me dice lo mismo.
Desde ya gracias a todos y suerte en esta gran comunidad que es el hacker ;)) ;-)


« Última modificación: 20 Marzo 2013, 04:27 am por vangodp » En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: DEV C++ 2+2 NO ES 4 ¬¬
« Respuesta #1 en: 20 Marzo 2013, 04:23 am »

El problema es que calculas la suma antes de leer el resultado.
Las variables num1 y num2 obtienen valor en las lineas: cin >> num1; y cin >> num2;. Y tú haces la suma antes.

La forma correcta de hacerlo es así:
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. int main ()
  8. {
  9.  
  10.     int num1;
  11.     int num2;
  12.  
  13.     int suma;
  14.  
  15.  
  16.     cout << "Introduce el primer numero\n"<<endl;
  17.     cin >> num1;
  18.  
  19.     cout << "Introduce el segundo numero\n"<<endl;
  20.     cin >> num2;
  21.  
  22.     suma = num1 + num2;
  23.  
  24.     cout << "El resultados es: " << suma << "\n" <<endl; //al invocar suma a mi no me sale por ejempo 2+2 me dice que es 0 :/
  25.  
  26.     system ("pause");
  27.     return 0;
  28. }


En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: DEV C++ 2+2 NO ES 4 ¬¬
« Respuesta #2 en: 20 Marzo 2013, 04:26 am »

El problema es que calculas la suma antes de leer el resultado.
Las variables num1 y num2 obtienen valor en las lineas: cin >> num1; y cin >> num2;. Y tú haces la suma antes.

La forma correcta de hacerlo es así:
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. int main ()
  8. {
  9.  
  10.     int num1;
  11.     int num2;
  12.  
  13.     int suma;
  14.  
  15.  
  16.     cout << "Introduce el primer numero\n"<<endl;
  17.     cin >> num1;
  18.  
  19.     cout << "Introduce el segundo numero\n"<<endl;
  20.     cin >> num2;
  21.  
  22.     suma = num1 + num2;
  23.  
  24.     cout << "El resultados es: " << suma << "\n" <<endl; //al invocar suma a mi no me sale por ejempo 2+2 me dice que es 0 :/
  25.  
  26.     system ("pause");
  27.     return 0;
  28. }



gracias amigo ere un artista, ni me dio tiempo de hacer un café :DD
En línea

zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: DEV C++ 2+2 NO ES 4 ¬¬
« Respuesta #3 en: 20 Marzo 2013, 04:28 am »

segun dev c++ si pongo 2+2 me dice que es 0 :/
Ya verás que no jeje.

Código:
#include <iostream>
#include <stdlib.h>
using namespace std;

int main ()
{
     int num1;
     int num2;

     int suma = num1 + num2; //creo que el problema esta aqui :(


     cout << "Introduce el primer numero\n"<<endl;
     cin >> num1;

     cout << "Introduce el segundo numero\n"<<endl;
     cin >> num2;

     cout << "El resultados es: " << suma << "\n" <<endl;

     system ("pause"); return 0;
 }

Cuando escribes int num1; int num2;
Estás declarando y definiendo dos variables de tipo entero, pero, como no las inicializas, su contenido es basura. Es decir, van a poder contener lo que sea que fuere.
Luego declaras una variable suma, e intentas inicializarla con el valor de num1+num2. Pero estos no fueron inicializados...
Me parece que aquí debió de advertirte de ese error. Aunque, talvés DevC++ los considera inicializados con 0.

Si no deseas mostrar el resultado como cout<<num1+num2; (como en el segundo programa que citas) y prefieres usar de intermediario la variable suma, puedes hacerlo. Pero... debes hacerlo luego que num1 y num2 tienen sus valores respectivos (es decir, luego de haberlos leído usando cin).

Saludos.
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: DEV C++ 2+2 NO ES 4 ¬¬
« Respuesta #4 en: 20 Marzo 2013, 04:32 am »

Ya verás que no jeje.

Código:
#include <iostream>
#include <stdlib.h>
using namespace std;

int main ()
{
     int num1;
     int num2;

     int suma = num1 + num2; //creo que el problema esta aqui :(


     cout << "Introduce el primer numero\n"<<endl;
     cin >> num1;

     cout << "Introduce el segundo numero\n"<<endl;
     cin >> num2;

     cout << "El resultados es: " << suma << "\n" <<endl;

     system ("pause"); return 0;
 }

Cuando escribes int num1; int num2;
Estás declarando y definiendo dos variables de tipo entero, pero, como no las inicializas, su contenido es basura. Es decir, van a poder contener lo que sea que fuere.
Luego declaras una variable suma, e intentas inicializarla con el valor de num1+num2. Pero estos no fueron inicializados...
Me parece que aquí debió de advertirte de ese error. Aunque, talvés DevC++ los considera inicializados con 0.

Si no deseas mostrar el resultado como cout<<num1+num2; (como en el según programa que citas) y prefieres usar de intermediario la variable suma, puedes hacerlo. Pero... debes hacerlo luego que num1 y num2 tienen sus valores respectivos (es decir, luego de haberlos leído usando cin).

Saludos.


si muchas gracias lo havia leido tambien que hay que poner un valor inicial pero no me dava cierto tampoco, por que el error era este que me comentas que le debo asignarle el valor a suma despues de tener los valores, se me escapo :DD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines