Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: cazagavilan en 17 Abril 2011, 18:21 pm



Título: Duda con do-while
Publicado por: cazagavilan en 17 Abril 2011, 18:21 pm
Hola, tengo que hacer un mini menu que me permita hacer una suma o salir del programa lo he intentado ( como no ) pero nada no me sale .Cuando sumo me salen numeros raros y si quiero salir del programa sale pero tengo que poner 0 dos veces.
Código
  1. #include "stdafx.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int main()
  6.  
  7. {
  8. int a;
  9. int b;
  10.    int suma;
  11. (suma = a+b);
  12. do{
  13. cout <<"****************************************\n";
  14. cout <<"*****                                                     *****\n";
  15. cout <<"****                                                        ****\n";
  16. cout <<"***                                                           ***\n";
  17. cout <<"**                                                              **\n";
  18. cout <<"*                CALCULADORA DE SUMAS           *\n";
  19. cout <<"**                                                              **\n";
  20. cout <<"***                                                           ***\n";
  21. cout <<"****                                                        ****\n";
  22. cout <<"*****                                                     *****\n";
  23. cout <<"****************************************\n";
  24.  
  25. cout <<"Escriba las dos cifras a sumar o pulse la tecla cero para salir: \n";
  26.    cin >> a >> b;
  27. cout << a << "+" << b << "=" << suma <<"\n";
  28. }while (a <= 0);
  29. return 0;
  30. }
  31.  
  32.  

Tambien me da este error :warning C4700: se utilizó la variable local 'a' sin inicializar.
warning C4700: se utilizó la variable local 'b' sin inicializar.

A ver si me podeis ayudar, Gracias.



Título: Re: Duda con do-while
Publicado por: Shell Root en 17 Abril 2011, 18:26 pm
El mismo error te da la respuesta.
Código
  1. #include <stdio.h>
  2.  
  3. int sNum1   = 0;
  4. int sNum2   = 0;
  5. int sResult = 0;
  6.  
  7. int main(){
  8.   printf("Ingrese numero 1: ");
  9.   scanf("%d", &sNum1);
  10.  
  11.   printf("Ingrese numero 2: ");
  12.   scanf("%d", &sNum2);
  13.  
  14.   sResult = sNum1 + sNum2;
  15.  
  16.   printf("%d\n", sResult);
  17.  
  18. }

Código
  1. alex@shellroot:~/Escritorio$ g++ PoC.cpp
  2. alex@shellroot:~/Escritorio$ ./a.out
  3. Ingrese numero 1: 4
  4. Ingrese numero 2: 3
  5. 7
  6.  


Título: Re: Duda con do-while
Publicado por: ssaammuu en 17 Abril 2011, 18:28 pm
Es que estas haciendo la suma antes de extraer los valores
cin>>a>>b y después suma = a+b;

otra cosa, tienes puesto que el bucle se repita mientras a sea menor o igual a 0, por lo que dice tu programa creo que sería , while(a!=0)


Título: Re: Duda con do-while
Publicado por: cazagavilan en 17 Abril 2011, 18:29 pm
jaja gracias me has encendido la bombilla. ahora tengo que solucionar lo del 0 a ver que tal me sale


Título: Re: Duda con do-while
Publicado por: cazagavilan en 17 Abril 2011, 18:32 pm
Si es que he hecho tantas pruebas que ya no se ni lo que ponia pero ahora haciendolo asi: a!=0 me sigue pidiendo dos ceros y haciendo la suma de los mismos, no tendria que salir el cero y cerrarse el programa?


Título: Re: Duda con do-while
Publicado por: ssaammuu en 17 Abril 2011, 18:33 pm
Te recomiendo que el bucle lo hagas infinito es decir while(1) y tras extraer a, mires se es igual a 0, si lo es, sales del bucle...
Código:
//codigo...
cout <<"Escriba las dos cifras a sumar o pulse la tecla cero para salir: \n";
    cin >> a;
    if (a==0)return 0;
    cin >> b;
    (suma = a+b);
cout << a << "+" << b << "=" << suma <<"\n";
}while (1);
//codigo...


Título: Re: Duda con do-while
Publicado por: cazagavilan en 17 Abril 2011, 18:35 pm
muchas gracias.