/*****************************
Taller extracurricular de programación C
UNAM-FCA
Programa:3 
Objetivo: Escriba un programa en C que permita registrar una venta y calcular el subtotal, IVA y total.
Fecha: 30 de septiembre de 2026
Programador: Paul Genaro Rodriguez Perez
*****************************/
#include <stdio.h>   
#include <stdlib.h>  

const float iva = 0.16f;     // tasa general
const float iva_f = 0.08f;   // tasa frontera

int main() {
    // --- Declaración de variables ---
    char producto[10];       // cadena de texto: 9 letras + 1 espacio para '\0'
    int cantidad;            // número entero de unidades
    float precio_u;          // precio de una unidad (admite decimales)
    float iva_producto;      // monto de IVA con tasa general
    float iva_f_producto;    // monto de IVA con tasa fronteriza

    // --- Entrada de datos ---
    printf("\nBienvenido al software de calculo de impuestos 🇲🇽!\n\tA continuación (en una sola palabra) ingresa el nombre de tu producto:\n\t");
    scanf("%9s", producto);          // %9s: lee máximo 9 caracteres (sin & porque es arreglo)

    printf("\n\tCosto por unidad:\n\t");
    scanf("%f", &precio_u);          // %f para float; & indica dónde guardar el valor

    printf("\n\tCantidad:\n\t");
    scanf("%d", &cantidad);          // %d para enteros

    system("clear");                 // limpia la pantalla (en Mac/Linux)

    // --- Cálculos ---
    float subtotal_descuento = cantidad * precio_u;   // valor sin IVA aplicado

    // El IVA se calcula sobre el valor sin IVA
    iva_producto   = subtotal_descuento * iva;     
    iva_f_producto = subtotal_descuento * iva_f;

    // --- Resumen de los datos ingresados ---
    printf("\n\tProducto:\t%s", producto);
    printf("\n\tCantidad:\t%d", cantidad);
    printf("\n\tPrecio unitario: $%.2f\n", precio_u);   // $ literal antes del valor; %.2f: 2 decimales

    // --- Resultados ---
    printf("\n\tSubtotal con descuento (sin iva aplicado): $%.2f", subtotal_descuento);

    // %%  imprime el símbolo %
    // Cada línea muestra el IVA y el precio final (valor sin IVA + IVA)
    printf("\n\tIVA general (16%%):  $%.2f  | Precio con IVA: $%.2f",
           iva_producto, subtotal_descuento + iva_producto);
    printf("\n\tIVA frontera (8%%):  $%.2f  | Precio con IVA: $%.2f\n",
           iva_f_producto, subtotal_descuento + iva_f_producto);

    return 0;   // indica que el programa terminó sin errores
}