-
Lenguaje
C
-
Descripción
Pide un número entero y muestra su valor en letra
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <stdio.h>
#include <stdlib.h>
void unidades_en_letra (unsigned long cantidad);
void millares_en_letra (unsigned long cantidad);
void millones_en_letra (unsigned long cantidad);
int main (void)
{
long cantidad;
printf ("Ingrese una cantidad: ");
scanf ("%ld", &cantidad);
putchar ('\n');
if (cantidad < 0)
{
printf ("menos ");
cantidad = -cantidad;
}
if (cantidad==0)
printf ("cero");
else
millones_en_letra (cantidad);
printf ("\n\n");
system ("pause");
return EXIT_SUCCESS;
}
const char *unidades[] = {NULL, "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve"};
const char *decimas[] = {NULL, "diez", "veinte", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa"};
const char *diez_y[] = {NULL, "once", "doce", "trece", "catorce", "quince"};
const char *centenas[] = {NULL, "ciento", NULL, NULL, NULL, "quinientos", NULL, "setecientos", NULL, "novecientos"};
void unidades_en_letra (unsigned long cantidad)
{
unsigned unidad = (unsigned) cantidad % 10;
unsigned decima = (unsigned) (cantidad / 10) % 10;
unsigned centena = (unsigned) (cantidad / 100) % 10;
if (centena!=0)
{
if (centenas[centena]==NULL)
printf ("%scientos", unidades[centena]);
else if (centena!=1 || unidad!=0 || decima!=0)
printf ("%s", centenas[centena]);
else
printf ("cien");
}
if (unidad!=0 || decima!=0)
{
if (centena!=0)
printf (" ");
if (decima==0)
printf ("%s", unidades[unidad]);
else if (unidad==0)
printf ("%s", decimas[decima]);
else if (decima==1 && unidad>=1 && unidad<=5)
printf ("%s", diez_y[unidad]);
else if (decima==1)
printf ("dieci%s", unidades[unidad]);
else if (decima==2)
printf ("veinti%s", unidades[unidad]);
else
printf ("%s y %s", decimas[decima], unidades[unidad]);
}
}
void millares_en_letra (unsigned long cantidad)
{
unsigned long unidades = cantidad % 1000;
unsigned long miles = (cantidad / 1000) % 1000;
if (miles>1)
unidades_en_letra (miles);
if (miles!=0)
printf ("mil");
if (unidades!=0 && miles!=0)
printf (" ");
unidades_en_letra (unidades);
}
void millones_en_letra (unsigned long cantidad)
{
unsigned long unidades = cantidad % 1000000L;
unsigned long millares = (cantidad / 1000000L) % 1000000L;
if (millares>1)
{
millares_en_letra (millares);
printf (" millones");
}
else if (millares!=0)
printf ("un mill\242n");
if (unidades!=0 && millares!=0)
printf (" ");
millares_en_letra (unidades);
}
#include <stdlib.h>
void unidades_en_letra (unsigned long cantidad);
void millares_en_letra (unsigned long cantidad);
void millones_en_letra (unsigned long cantidad);
int main (void)
{
long cantidad;
printf ("Ingrese una cantidad: ");
scanf ("%ld", &cantidad);
putchar ('\n');
if (cantidad < 0)
{
printf ("menos ");
cantidad = -cantidad;
}
if (cantidad==0)
printf ("cero");
else
millones_en_letra (cantidad);
printf ("\n\n");
system ("pause");
return EXIT_SUCCESS;
}
const char *unidades[] = {NULL, "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve"};
const char *decimas[] = {NULL, "diez", "veinte", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa"};
const char *diez_y[] = {NULL, "once", "doce", "trece", "catorce", "quince"};
const char *centenas[] = {NULL, "ciento", NULL, NULL, NULL, "quinientos", NULL, "setecientos", NULL, "novecientos"};
void unidades_en_letra (unsigned long cantidad)
{
unsigned unidad = (unsigned) cantidad % 10;
unsigned decima = (unsigned) (cantidad / 10) % 10;
unsigned centena = (unsigned) (cantidad / 100) % 10;
if (centena!=0)
{
if (centenas[centena]==NULL)
printf ("%scientos", unidades[centena]);
else if (centena!=1 || unidad!=0 || decima!=0)
printf ("%s", centenas[centena]);
else
printf ("cien");
}
if (unidad!=0 || decima!=0)
{
if (centena!=0)
printf (" ");
if (decima==0)
printf ("%s", unidades[unidad]);
else if (unidad==0)
printf ("%s", decimas[decima]);
else if (decima==1 && unidad>=1 && unidad<=5)
printf ("%s", diez_y[unidad]);
else if (decima==1)
printf ("dieci%s", unidades[unidad]);
else if (decima==2)
printf ("veinti%s", unidades[unidad]);
else
printf ("%s y %s", decimas[decima], unidades[unidad]);
}
}
void millares_en_letra (unsigned long cantidad)
{
unsigned long unidades = cantidad % 1000;
unsigned long miles = (cantidad / 1000) % 1000;
if (miles>1)
unidades_en_letra (miles);
if (miles!=0)
printf ("mil");
if (unidades!=0 && miles!=0)
printf (" ");
unidades_en_letra (unidades);
}
void millones_en_letra (unsigned long cantidad)
{
unsigned long unidades = cantidad % 1000000L;
unsigned long millares = (cantidad / 1000000L) % 1000000L;
if (millares>1)
{
millares_en_letra (millares);
printf (" millones");
}
else if (millares!=0)
printf ("un mill\242n");
if (unidades!=0 && millares!=0)
printf (" ");
millares_en_letra (unidades);
}