#include <stdio.h> #include <stdlib.h>
void Nombrar_Centena(int Num); void Nombrar_Numero(long Num);
char *Unidad[10]={"cero", "uno", "dos","tres","cuatro","cinco", "seis", "siete", "ocho", "nueve"}, *Diez[10]={"diez", "once", "doce", "trece", "catorce", "quince", "dieciseis", "diecisiete", "dieciocho", "diecinueve"}, *Decena[10]={"cero","diez","veinte","treinta","cuarenta","cincuenta", "sesenta","setenta","ochenta","noventa"}, *Centena[10]={"cien", "ciento", "doscientos", "trescientos","cuatrocientos", "quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos"}, Millar[]="mil";
int main(void) { long Num; printf("Numero menor que 100.000: "); scanf("%ld", &Num); printf("\nEn letras: "); Nombrar_Numero( Num ); puts("\n\n"); system("PAUSE"); return EXIT_SUCCESS;
}
void Nombrar_Centena(int Num) { /* Num es una centena de la forma abc. Descomponemos num en: a, b y c: */ int a, b, c; c=Num%10; b=(Num%100-c)/10; a=(Num-10*b-c)/100; if(a > 0) { if( b==0 && c==0) /* Si el Num = 100 */ printf("%s ", Centena[0]); else printf("%s ", Centena[a]); /* Si 100<Num<200 */ } if(b > 0) { if(b == 1) printf("%s ", Diez[c]); /* Si 10<Num<20 */ else printf("%s ", Decena[b]); /* Si 1<b<10 */ } if(c > 0) /* Imprime las unidades */ { if(b > 1) printf("y "); if(b != 1) printf("%s ", Unidad[c]); } return; }
void Nombrar_Numero(long Num) { int Num_mil; /* Num es un numero menor que 100000 */ if(Num == 0) printf("%s", Unidad[0]); /* si Num=0 */ if(Num < 100000) /* si Num<100000 */ { Num_mil=(Num-Num%1000)/1000; if(Num_mil > 1) Nombrar_Centena(Num_mil); if(Num >= 1000) printf("%s ", Millar); Nombrar_Centena(Num%1000); } else printf("Numero ingresado mayor o igual a 100000"); return; }
|