/* CONVERTIR DE NUMERO A LETRA
En al rango de 0 --> 999
*/
#include <stdio.h>
#include <string.h>
#include <conio.h>
// conversiOn num - let.
char *texto; // variable global (salida en texto)
void main(void)
{
int Num,N,T,C,D,U;
clrscr();
gotoxy(10,10);
scanf("%d",&Num); N = Num;
gotoxy(10,13);
printf("Convirtiendo a texto ...\n\n");
C = N/100;
T = N - (C*100);
D = T/10;
U = T - (D*10);
conv(C,D,U);
printf("%d\t%d\t%d\n",C,D,U);
printf("%s",texto);
getch();
}
void conv(int C, int D, int U)
{
char *T;
texto = "";
if (C)
{
T = "";
switch(C)
{
case 1:
T = "cien";
if ((D) || (U))
strcat(T,"to ");
break;
case 2: T = "doscientos "; break;
case 3: T = "trescientos "; break;
case 4: T = "cuatrocientos "; break;
case 5: T = "quinientos "; break;
case 6: T = "seiscientos "; break;
case 7: T = "setecientos "; break;
case 8: T = "ochocientos "; break;
case 9: T = "novecientos "; break;
} // FIN DE SWITCH(C)
strcat(texto, T);
T = "";
} // FIN DE IF (C)
if (D)
{
T = "";
switch(D)
{
case 1:
if (!U) T = "diez";
if ((U) && (U < 6))
{
if (U == 1) T = "once";
if (U == 2) T = "doce";
if (U == 3) T = "trece";
if (U == 4) T = "catorce";
if (U == 5) T = "quince";
} // FIN DE IF (U < 6) && D = 1
if (U >= 6) T = "dieci";
break;
case 2:
if (!U) T = "veinte";
if (U) T = "veinti";
break;
case 3: T = "treinta "; break;
case 4: T = "cuarenta "; break;
case 5: T = "cincuenta "; break;
case 6: T = "sesenta "; break;
case 7: T = "setenta "; break;
case 8: T = "ochenta "; break;
case 9: T = "noventa "; break;
} // FIN DE SWITCH(D)
strcat(texto, T);
T = "";
if ((U) && (D > 2)) strcat(texto, "y ");
} // FIN DE SI HAY DECENAS
if (U)
{
T = "";
if ((!(D == 1)) && (U < 6))
{
switch(U)
{
case 1: T = "uno"; break;
case 2: T = "dos"; break;
case 3: T = "tres"; break;
case 4: T = "cuatro"; break;
case 5: T = "cinco"; break;
} // FIN DE SWITCH(U)
} // FIN DE IF (D > 1)
if (U > 5)
{
switch(U)
{
case 6: T = "seis"; break;
case 7: T = "siete"; break;
case 8: T = "ocho"; break;
case 9: T = "nueve"; break;
} // FIN DE SWITCH (U)
} // FIN DE IF (U > 5)
} // FIN DE IF (U)
strcat(texto, T);
} // FIN DE LA FUNCION CONV(i,i,i)