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:

  1. Calcular aumento según porcentaje
  2. Obtener descuento según porcentaje
  3. Calcular valor original de acuerdo a porcentaje de descuento
  4. 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

Porcentaje de aumento con C

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í:

Calcular precio final con porcentaje de descuento en lenguaje C

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.

Valor real a partir de precio con aumento y porcentaje en C

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:

Obtener precio original según descuento usando ANSI C

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

2 semanas hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.