Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/08/2015, 01:51
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Por que mi codigo multiplica en lugar de sumar?

Hola, esto te pasa porque has puesto dos if en la función agregarSaldo(float) que no son excluyentes. Es decir, cuando entras en esa función se evalúan los dos if.
La primera vez, cuando no hay saldo, esto es lo que sucede:
Código C++:
Ver original
  1. if(saldoTotal == 0)
  2.         saldoTotal =  saldo;

Como saldoTotal es 0, se añade saldo al total....pero se evalúa el siguiente if:
Código C++:
Ver original
  1. if(saldoTotal > 0)
  2.             saldoTotal = saldo + saldoTotal;

Como ahora saldoTotal ya es >0 por la sentencia anterior, se le vuelve a añadir el valor de saldo

En las sucesivas llamadas a la función ya no se cumple e primer if, porque saldoTotal ya es mayor que 0, luego sólo se ejecuta el segundo.

Para solucionarlo has de hacer que los dos if sean excluyentes :
Código C++:
Ver original
  1. if{}
  2. else if{}

Aún así no le veo mucha lógica a la función propiamente dicha. Se debería limitar a sumar la cantidad deseada a saldoTotal, sin hacer distinciones si saldoTotal es = a 0 o mayor.
__________________
Mi calculadora en Qt