Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/08/2015, 07:31
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 4 meses
Puntos: 10
Respuesta: Consola no ejecuta el programa

Hola, te comento varias cosas, empezando por las más generales.

-Debes decorar el código para que sea más legible para los que leemos en el foro. Además de ser una norma, un texto poco legible hará que mucha gente no se pare a ver tu problema, por lo que reduces las posibilidades de encontrar una respuesta. Para hacerlo tienes un desplegable sobre la esquina superior derecha de esta caja de texto, donde pone Highlight. Allí eliges C++

-Luego te comento algún error de tu programa....no has encerrado entre llaves el bloque else, por lo que no te va a funcionar bien.

-Sobre este mismo bloque, te aconsejo que todo lo que sea repetido lo saques de la secuencia if/else. Es menos propenso a errores, no duplicas nada y es más lógico.
Así que en este bloque:
Código C++:
Ver original
  1. if (puesto == administrativo)
  2. {
  3. cout << "Ingrese el monto total de deuda con la empresa, si tiene";
  4. cin >> deuda;
  5. sueldo = (56000 * dias) - deuda;
  6. cout << "El total a pagar es: ";
  7. }

y este otro (cuando lo encierres entre llaves):
Código C++:
Ver original
  1. else
  2. cout << "Ingrese el monto total de deuda con la empresa, si tiene";
  3. cin >> deuda;
  4. sueldo = (48000 * dias) - deuda;
  5. cout << "El total a pagar es: ";

Lo relevante es si multiplico por 56000 o por 48000. El resto de sentencias no forma parte de esa decisión.

Así que es mejor esto:
Código C++:
Ver original
  1. cout << "Ingrese el monto total de deuda con la empresa, si tiene";
  2. cin >> deuda;
  3. if (puesto == administrativo) {
  4.     sueldo = (56000 * dias) - deuda;
  5. }
  6. else
  7. {
  8.     sueldo = (48000 * dias) - deuda;
  9. }
  10. cout << "El total a pagar es: ";

Por cierto que desués de sacar por consola la cadena "El total a pagar" has de sacar la variable sueldo, para que se lea correctamente.


- Y por fin, la duda que no te deja seguir.....has definido puesto y administrativo como char, y has igualado administrativo a 0.
Eso quiere decir que has asignado a administrativo el caracter nulo (mira una tabla ascii), por lo que tenga el valor que tenga la variable puesto no será nula, ya que lee una entrada del teclado.

Puedes hacer dos cosas, convertir esas variables a int, y asumir que el valor numérico 0 corresponde a "administrativo", o darle un valor de char a "administrativo", de forma que lo puedes igualar a 'a', ó 'A', o incluso '0'. Fíjate en las comillas simples para definir un caracter char.

¡Saludos y espero que te sirva de ayuda!
__________________
Mi calculadora en Qt