Realizar un programa que permita convertir los cardinales menores a 1000 a números ordinales en letras. Por ejemplo:
Entrada: 756
Salida: septingentésimo quincuagésimo sexto
Solución:
Codigo Fuente en C
#include <stdio.h> int main() { const char *unidades[] = {"primero", "segundo", "tercero" ,"cuarto" ,"quinto" ,"sexto" , "septimo" ,"octavo" ,"noveno" ,"decimo"}; const char *decenas[] = {"decimo","vigesimo", "trigesimo","cuadragesimo", "quincuagesimo","sexagesimo", "septuagesimo", "octogesimo", "nonagesimo"}; const char *centenas[] = {"centesimo","ducentesimo", "tricentesimo","cuadringentesimo", "quingentesimo", "sexcentesimo", "septingentesimo", "octingentesimo", "noningentesimo"}; int num; printf("Ingrese un numero entre 1-999: "); scanf("%d",&num); if(num>0 && num<11) printf("\n=> %s", unidades[num-1]); else if( num < 1000){ int c = num/100; int d = (num - c*100)/10; int u = num % 10; if(u == 0 && d == 0) printf("\n=> %s", centenas[c-1]); else if(u == 0 && c == 0) printf("\n=> %s", decenas[d-1]); else if(d == 0 && c == 0) printf("\n=> %s", unidades[u-1]); else if(c == 0) printf("\n=> %s %s ", decenas[d-1], unidades[u-1]); else printf("\n=> %s %s %s", centenas[c-1], decenas[d-1], unidades[u-1]); } else printf("El numero debe ser menor a 1000"); getchar(); return 0; }
No hay comentarios:
Publicar un comentario