Me encuentro haciendo una tarea de programación en c++, y ya tengo todo el código hecho pero no se porque no me calcula el 10% de una cantidad, supongamos que ingreso monto= 20 y quiero el 10% del costo total, en el codigo sería
costototal=monto*.90
Él resultado sería 18.
Pero al momento de hacerlo en el programa me dice que es 0
y en cantidades grandes me saca otro porcentaje y no es el indicado... ayuda, les adjunto 2 fotos para que me entiendan mejor.
![](https://es-static.z-dn.net/files/db9/d9fbb9491bcbf9ce55efb9fed70864df.png)
![](https://es-static.z-dn.net/files/d25/3d4203949bae9561198483b6656a2f47.png)
Respuestas
Hola, en el codigo en c++ no te muestra el resultado por varias observaciones:
1. En la declaración de variables donde dice "int" cambiarlo por float o double, ya al poner int (Entero) no se obtendra los decimales.
2. Para hallar el porcentaje de 10 %, 30% y 50% se obtiene dividiendo numero / 100, por ejemplo con 10%, seria 10/100 = 0.10, o simplemente poner 0.10, entonces 30 % => 0.30 y 50% =>0.50.
3. Para obtener el costo total a pagar, primero se tiene que multiplicar el monto ingresado por el porcentaje, es decir, ct = monto*0.10 con eso se obtiene lo que se va a descontar, de ahi, se resta el monto ingresado con el calculo del monto multiplicado con el porcentaje, es decir, ct = monto - (monto*0.10).
Todo lo demás esta correcto.
El codigo final seria de esta manera (C++)
#include<stdio.h>
int main(){
float monto, ct;
char color;
printf("Dar monto: ");
scanf("%f",&monto);
printf("Elija un color: \n a) NEGRO \n b) VERDE \n c) ANARANJADO \n d) ROJO \n");
scanf("%s",&color);
switch(color){
case 'a':
printf("No tiene descuento");
break;
case 'b':
printf("Obtuvo 10 por ciento de descuento \n");
ct=monto-(monto*0.10);
printf("El total a pagar es %f",ct);
break;
case 'c':
printf("Obtuvo 30 por ciento de descuento \n");
ct=monto-(monto*0.30);
printf("El total a pagar es %f",ct);
break;
case 'd':
printf("Obtuvo 50 por ciento de descuento \n");
ct=monto-(monto*0.50);
printf("El total a pagar es de %f",ct);
break;
default:
printf("Operación invalida\n");
break;
}
return 0;
}
¡Saludos!
![](https://es-static.z-dn.net/files/dbb/10cba1e2eb171b8cf2e85f93f73bbae7.jpg)