Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
#include "stdafx.h"
#include <iostream>
using namespace std;

int main()

{
int a;
int b;
    int suma;
(suma = a+b);
do{
cout <<"****************************************\n";
cout <<"*****                                                     *****\n";
cout <<"****                                                        ****\n";
cout <<"***                                                           ***\n";
cout <<"**                                                              **\n";
cout <<"*                CALCULADORA DE SUMAS           *\n";
cout <<"**                                                              **\n";
cout <<"***                                                           ***\n";
cout <<"****                                                        ****\n";
cout <<"*****                                                     *****\n";
cout <<"****************************************\n";

cout <<"Escriba las dos cifras a sumar o pulse la tecla cero para salir: \n";
    cin >> a >> b;
cout << a << "+" << b << "=" << suma <<"\n";
}while (a <= 0);
return 0;
}



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 (cpp) [Seleccionar]
#include <stdio.h>

int sNum1   = 0;
int sNum2   = 0;
int sResult = 0;

int main(){
   printf("Ingrese numero 1: ");
   scanf("%d", &sNum1);

   printf("Ingrese numero 2: ");
   scanf("%d", &sNum2);

   sResult = sNum1 + sNum2;

   printf("%d\n", sResult);

}


Código (PoC) [Seleccionar]
alex@shellroot:~/Escritorio$ g++ PoC.cpp
alex@shellroot:~/Escritorio$ ./a.out
Ingrese numero 1: 4
Ingrese numero 2: 3
7

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...

//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.