En este post de programación en C (o ANSI C) te mostraré algunos ejemplos de cómo trabajar con porcentajes; pues aunque suene básico, en ocasiones tenemos problemas calculando descuentos o aumentos en porcentajes.
Te mostraré 4 cosas:
- Calcular aumento según porcentaje
- Obtener descuento según porcentaje
- Calcular valor original de acuerdo a porcentaje de descuento
- Obtener valor original de acuerdo a porcentaje de aumento
Es decir, trabajar con porcentajes, ya sea para obtener un porcentaje o para obtener el valor original.
Calcular aumento con porcentaje
Veamos el primer ejemplo. En este caso vamos a calcular el precio total después de aumentar un porcentaje. Por ejemplo, si un artículo cuesta 500
pesos pero tiene un aumento del 16 %
por el IVA.
En este caso solicitamos al usuario el valor y el porcentaje, luego aplicamos una fórmula e imprimimos el resultado:
#include <stdio.h>
int main()
{
float precioOriginal, porcentajeAumento;
printf("Ingresa el precio original: ");
scanf("%f", &precioOriginal);
printf("Ingresa el porcentaje de aumento: ");
scanf("%f", &porcentajeAumento);
float aumento = precioOriginal * (porcentajeAumento / 100);
float precioConAumento = precioOriginal + aumento;
printf("Precio con aumento: %0.2f", precioConAumento);
return 0;
}
Lo primero que hacemos es obtener valor con el porcentaje de aumento, que se logra multiplicando el precio original por lo que resulta de dividir el porcentaje entre cien.
Después, para obtener el precio con aumento en el lenguaje C, sumamos el aumento al precio original. Finalmente imprimimos los resultados. Presta atención al ejemplo, pues para calcular el descuento es lo mismo, pero se hace una resta.
Aplicar porcentaje de descuento en C
Veamos el siguiente ejercicio. En este caso vamos a ver cómo saber el valor final después de aplicar un porcentaje de descuento. El código fuente queda así:
#include <stdio.h>
int main()
{
float precioOriginal, porcentajeDescuento;
printf("Ingresa el precio original: ");
scanf("%f", &precioOriginal);
printf("Ingresa el porcentaje de descuento: ");
scanf("%f", &porcentajeDescuento);
float descuento = precioOriginal * (porcentajeDescuento / 100);
float precioConDescuento = precioOriginal - descuento;
printf("Precio con descuento: %0.2f", precioConDescuento);
return 0;
}
Ahora fíjate en que en lugar de sumar, se resta (línea 12). Probemos el código, supongamos que un producto cuesta 700
pesos pero tiene un 20 %
de descuento, queda así:
Haciendo las operaciones mentalmente, si el 10 % de 700 es 70, y queremos el 20 % (dos veces 70) entonces es 140, y si restamos 140 de 700 efectivamente obtenemos 560.
Obtener valor original a partir de porcentaje de aumento
Veamos un ejercicio interesante; se trata de que a partir del valor con aumento y el porcentaje de aumento, debemos sacar el valor original.
Por ejemplo, si un juego me costó 1700 pesos mexicanos (te estoy mirando a ti, Nintendo) con un aumento del 16 %, ¿Cuál era el valor sin aumento?
Para ello usamos una regla de 3 y sacamos la siguiente fórmula:
precio original = (100 * precio con aumento) / porcentaje real
En donde el porcentaje real es lo que resulta de sumar 100 al porcentaje de aumento. Pero mejor veamos el código:
#include <stdio.h>
int main()
{
float precioConAumento, porcentajeAumento;
printf("Ingresa el porcentaje de aumento: ");
scanf("%f", &porcentajeAumento);
printf("Ingresa el valor con el porcentaje aplicado: ");
scanf("%f", &precioConAumento);
// Sumamos el porcentaje de descuento a cien
float porcentajeReal = 100 + porcentajeAumento;
// Y ahora sacamos el valor real. Para ello...
float precioOriginal = (100 * precioConAumento) / porcentajeReal;
printf("Valor original: %0.2f", precioOriginal);
return 0;
}
Sé que debe haber una fórmula más sencilla por ahí, pero de este modo igualmente funciona.
Para comprobarlo, solo debemos hacer lo inverso: al resultado sumarle ese porcentaje, que en este caso sería como multiplicar 1465.52 * 1.16
y efectivamente resulta en 1700.0032
(entre más decimales, más precisión)
Programación en C: precio original a partir de precio con descuento y porcentaje
Para terminar esta serie de ejercicios de programación en C con porcentajes veamos lo inverso a lo anterior: a partir del valor con descuento y el porcentaje de descuento aplicado, obtener el valor original.
Por ejemplo, si compré un SSD a 800 pesos pero tenía un descuento del 18 %, ¿Cuál era el precio original, es decir, sin descuento?
Para ello aplicamos algo similar a lo anterior:
#include <stdio.h>
int main()
{
float precioConDescuento, porcentajeDescuento;
printf("Ingresa el porcentaje de descuento: ");
scanf("%f", &porcentajeDescuento);
printf("Ingresa el valor con el porcentaje aplicado: ");
scanf("%f", &precioConDescuento);
// Restamos el porcentaje de descuento a cien
float porcentajeReal = 100 - porcentajeDescuento;
// Y ahora sacamos el valor real. Para ello...
float precioOriginal = (100 * precioConDescuento) / porcentajeReal;
printf("Valor original: %0.2f", precioOriginal);
return 0;
}
Lo único que cambia en este caso es que restamos al porcentaje real, en lugar de sumar. Aquí la captura de que funciona:
Poniendo todo junto
A continuación dejaré los 4 ejercicios completos en un repositorio de GitHub. También te invito a leer más sobre programación en C.