Untitled

 avatar
unknown
plain_text
a year ago
3.2 kB
5
Indexable
#include <stdio.h>
#include <string.h>

int main() {
    int numero, unidades, decenas, centenas;
    char cientosTexto[30] = "", decenasTexto[30] = "", unidadesTexto[15] = "";
    char resultado[100] = "";

    printf("Introduce un número entre 0 y 999: ");
    scanf("%d", &numero);

    if (numero < 0 || numero > 999) {
        printf("Número fuera del rango permitido.\n");
        return 1;
    }

    centenas = numero / 100;
    decenas = (numero % 100) / 10;
    unidades = numero % 10;

    switch (centenas) {
        case 1:
            if (decenas == 0 && unidades == 0)
                strcpy(cientosTexto, "cien");
            else
                strcpy(cientosTexto, "ciento ");
            break;
        case 2: strcpy(cientosTexto, "doscientos "); break;
        case 3: strcpy(cientosTexto, "trescientos "); break;
        case 4: strcpy(cientosTexto, "cuatrocientos "); break;
        case 5: strcpy(cientosTexto, "quinientos "); break;
        case 6: strcpy(cientosTexto, "seiscientos "); break;
        case 7: strcpy(cientosTexto, "setecientos "); break;
        case 8: strcpy(cientosTexto, "ochocientos "); break;
        case 9: strcpy(cientosTexto, "novecientos "); break;
    }

    if (decenas == 1 && unidades > 0) {
        switch (unidades) {
            case 1: strcpy(decenasTexto, "once"); break;
            case 2: strcpy(decenasTexto, "doce"); break;
            case 3: strcpy(decenasTexto, "trece"); break;
            case 4: strcpy(decenasTexto, "catorce"); break;
            case 5: strcpy(decenasTexto, "quince"); break;
            case 6: strcpy(decenasTexto, "dieciséis"); break;
            case 7: strcpy(decenasTexto, "diecisiete"); break;
            case 8: strcpy(decenasTexto, "dieciocho"); break;
            case 9: strcpy(decenasTexto, "diecinueve"); break;
        }
    } else {
        switch (decenas) {
            case 2: strcpy(decenasTexto, "veinte"); break;
            case 3: strcpy(decenasTexto, "treinta"); break;
            case 4: strcpy(decenasTexto, "cuarenta"); break;
            case 5: strcpy(decenasTexto, "cincuenta"); break;
            case 6: strcpy(decenasTexto, "sesenta"); break;
            case 7: strcpy(decenasTexto, "setenta"); break;
            case 8: strcpy(decenasTexto, "ochenta"); break;
            case 9: strcpy(decenasTexto, "noventa"); break;
        }
        if (decenas >= 2 && unidades > 0) {
            strcat(decenasTexto, " y ");
        }
        switch (unidades) {
            case 1: strcpy(unidadesTexto, "uno"); break;
            case 2: strcpy(unidadesTexto, "dos"); break;
            case 3: strcpy(unidadesTexto, "tres"); break;
            case 4: strcpy(unidadesTexto, "cuatro"); break;
            case 5: strcpy(unidadesTexto, "cinco"); break;
            case 6: strcpy(unidadesTexto, "seis"); break;
            case 7: strcpy(unidadesTexto, "siete"); break;
            case 8: strcpy(unidadesTexto, "ocho"); break;
            case 9: strcpy(unidadesTexto, "nueve"); break;
        }
    }

    strcat(resultado, cientosTexto);
    strcat(resultado, decenasTexto);
    strcat(resultado, unidadesTexto);

    printf("En letras: %s\n", resultado);
    return 0;
}
Editor is loading...
Leave a Comment