/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

::: problema con un cajero :::

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
kykyou



Registrado: 02 Sep 2004
Mensajes: 67
Ubicación: santiago, Chile..

MensajePublicado: 15/10/2004 5:42 am
Título: ::: problema con un cajero :::

hola nuevamente!!
primero que todo, quiero dar las gracias a todos los que nos ayudan en este foro Wink y junto con esto queria plantearles una duda.
hice un algoritmo de un cajero y me gustaria seber que es lo que falla Crying or Very sad pues quiero depositar dinero y me sale una cantidad negativa a pesar que puse long int.
bueno, espero que me ayuden. Rolling Eyes
de antemano muchas gracias!

aqui les dejo el algorotmo que hice ...


Código:

#include<stdio.h>
#include<conio.h>

void menu()
{
long int x,y,z,i;
char letra;
i=0;
do
{
   printf("\n\n\t\t:::Bienvenido a cajeros Pretoriano S.A:::");
   printf("\n\n\tSeleccione la opcion que decea realizar:");
   printf("\n\n\t(C)onsulta de saldo");
   printf("\n\t(R)etiro de dinero");
   printf("\n\t(D)eposito de dinero");
   printf("\n\t(S)alir del menu");
   letra=getch();
   switch(letra)
   {
      case 'd':
         clrscr();
         printf("\n\n\tIngrese la cantidad a depositar==>");
         scanf("%ld",x);
         i+=x;
         printf("\n\n\tSu saldo total despues del deposito es==> %ld",i);
         break;
      case 'r':
         clrscr();
         printf("\n\n\tIngrese la cantidad que desea retirar==>");
         scanf("%ld",y);
         if(y>i)
            printf("\n\tEl monto que desea retirar es superior a su saldo en la cuenta");
         else
            printf("\n\tSu saldo despues del retiro es ==> %ld",i-y);
         break;
      case 'c':
         clrscr();
         printf("\n\n\tSu saldo actual es==> %ld",i-y);
         break;
      case 's':
         clrscr();
         printf("\n\n\t:::Gracias por preferirnos:::");
         printf("\n\n\t:::Hasta pronto:::");
         getch();
         exit();
   }
}
while(letra== 's');
}


void main()
{
clrscr();
menu();
}



      
Volver arriba
arthas



Registrado: 20 Sep 2004
Mensajes: 143

MensajePublicado: 15/10/2004 6:10 am
Título:

Hola

Usa float para numeros muy altos.

Salu2
Volver arriba
kykyou



Registrado: 02 Sep 2004
Mensajes: 67
Ubicación: santiago, Chile..

MensajePublicado: 15/10/2004 5:02 pm
Título:

gracias, ya lo hice ; )
cuando pueda lo publico...
muchas gracias!
Volver arriba
elColme



Registrado: 14 Abr 2004
Mensajes: 102
Ubicación: España

MensajePublicado: 16/10/2004 1:26 am
Título: Error sintaxis

Hola kykyyou:

A simple vista, y en el código que tienes posteado, no realizas bien la lectura de los datos que le pides al usuario dentro de la estructura de selección múltiple.Ya que a scanf no le pasas un puntero como segundo parámetro.Ese pude ser el motivo de la cantidad negativa que mencionas.

Saludos.
Volver arriba
oscardo



Registrado: 15 Oct 2004
Mensajes: 1

MensajePublicado: 16/10/2004 7:39 am
Título: Mira este codigo!!! suerte....

#include<stdio.h>
#include<conio.h>
void menu(){ //listo la funcion, esta bien
long int x=0,y=0,z=0,i=0; //primer error todas las variables siempre deben
//inicializarlas en cero (0) o uno (1) o el valor que deseas iniciar
//te recomendaria que usaras float (real o con punto flotante) -> solo
//cambias %ld por %f y para mostrar puedes usar %.2f asi restrigiras el uso
//de mas numeros despues del punto flotante
//con %f = se mostraria un dato 25.34002241
//con %.2f = se mostraria un dato 25.34 asi manejarias centavos
char letra; //aun no manejas punteros pero seria interesante que los
//aprendieran
i=0; //listo pero no todos esta inicializador OJO
do{ //simplifica estructuras C permite hacer estructuras mas compactas
printf("\n\n\t\t:::Bienvenido a cajeros Pretoriano S.A:::"); //ok
printf("\n\n\tSeleccione la opcion que decea realizar:");
printf("\n\n\t(C)onsulta de saldo");
printf("\n\t(R)etiro de dinero");
printf("\n\t(D)eposito de dinero");
printf("\n\t(S)alir del menu");
letra=getch(); //ok
switch(letra){
case 'd':
clrscr();
printf("\n\n\tIngrese la cantidad a depositar==>");
scanf("%ld",&x); //segundo error es es b sico si tienes una
//variable tienes que guardarla o sino te dara valores negativos
/*
una forma es con el &x, que almacenara la informacion q deseas en la
variable
*/
i+=x; //ok
printf("\n\n\tSu saldo total despues del deposito es==> %ld",i);
break;
case 'r':
clrscr();
printf("\n\n\tIngrese la cantidad que desea retirar==>");
scanf("%ld",&y); //otro error el &
if(y>i) //ok
printf("\n\tEl monto que desea retirar es superior a su saldo en la cuenta");
else //ok
printf("\n\tSu saldo despues del retiro es ==> %ld",i-y);
break;
case 'c':
clrscr();
printf("\n\n\tSu saldo actual es==> %ld",i-y); //puedes usar un aux o total = i - y;
break;
case 's':
clrscr();
printf("\n\n\t:::Gracias por preferirnos:::");
printf("\n\n\t:::Hasta pronto:::");
getch();
exit();
}
}while(letra == 's');
}//sabes falta documentacion y comentariado????, es UTIL....asi nos entendemos
//los prospectos de ingenieros!!!!
void main()
{
clrscr();
menu();
}
//ciao y suerte mas ayuda
//bueno se sale, intenta de nuevo... la idea no es hacer las cosas de los
//demas si no ense¤ar a hacerlas!!!! Oscar Ortiz--BOGOTA / COLOMBIA
Volver arriba
kykyou



Registrado: 02 Sep 2004
Mensajes: 67
Ubicación: santiago, Chile..

MensajePublicado: 16/10/2004 6:32 pm
Título:

gracias a todos!
estaba bien , lo que faltaba era poner los & en los scanf y arreglar la condicion while, en ves de poner letra=='s' debia poner letra !='s' y con eso funcionaba... tambien arreglar un poco las condiciones del caso 'c' del switch para que no saliera numeros negativos cuando no habia dinero y quedaba listo. Surprised
gracias a todos por ayudarme, nos vemos!
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com