Un buen ejercicio para
ir practicando nuestras aptitudes de programación es hacer un programa que nos
"lea" un número que le pasemos. Es decir, si introducimos el número
99999,99 nos diga: "noventa y nueve mil novecientos noventa y nueve con
noventa y nueve céntimos."
#include <iostream>
#include <stdlib.h>
int main(int argc,
char** argv)
{
//Es un
double y no un float para que no la lie con la precisión de los decimales con
segun que valores
double
valor;
int
miles,cientos,unidades,decimales;
char
numeros[100][20] =
{
{""},{"un"},{"dos"},{"tres"},{"cuatro"},{"cinco"},{"seis"},{"siete"},{"ocho"},{"nueve"},
{"diez"},{"once"},{"doce"},{"trece"},{"catorce"},{"quince"},{"dieciseis"},{"dieceisiete"},{"dieciocho"},{"diecinueve"},
{"veinte"},{"veintun"},{"veintidos"},{"veintitres"},{"veinticuatro"},{"veinticinco"},{"veintiseis"},{"veintisiete"},{"veintiocho"},{"veintinueve"},
{"treinta"},{"treinta
y uno"},{"treinta y dos"},{"treinta y
tres"},{"treinta y cuatro"},{"treinta y
cinco"},{"treinta y seis"},{"treinta y
siete"},{"treinta y ocho"},{"treinta y nueve"},
{"cuarenta"},{"cuarenta
y uno"},{"cuarenta y dos"},{"cuarenta y
tres"},{"cuarenta y cuatro"},{"cuarenta y
cinco"},{"cuarenta y seis"},{"cuarenta y
siete"},{"cuarenta y ocho"},{"cuarenta y nueve"},
{"cincuenta"},{"cincuenta
y uno"},{"cincuenta y dos"},{"cincuenta y
tres"},{"cincuenta y cuatro"},{"cincuenta y
cinco"},{"cincuenta y seis"},{"cincuenta y
siete"},{"cincuenta y ocho"},{"cincuenta y nueve"},
{"sesenta"},{"sesenta
y uno"},{"sesenta y dos"},{"sesenta y
tres"},{"sesenta y cuatro"},{"sesenta y
cinco"},{"sesenta y seis"},{"sesenta y
siete"},{"sesenta y ocho"},{"sesenta y nueve"},
{"setenta"},{"setenta
y uno"},{"setenta y dos"},{"setenta y
tres"},{"setenta y cuatro"},{"setenta y
cinco"},{"setenta y seis"},{"setenta y
siete"},{"setenta y ocho"},{"setenta y nueve"},
{"ochenta"},{"ochenta
y uno"},{"ochenta y dos"},{"ochenta y
tres"},{"ochenta y cuatro"},{"ochenta y
cinco"},{"ochenta y seis"},{"ochenta y
siete"},{"ochenta y ocho"},{"ochenta y nueve"},
{"noventa"},{"noventa
y uno"},{"noventa y dos"},{"noventa y
tres"},{"noventa y cuatro"},{"noventa y
cinco"},{"noventa y seis"},{"noventa y
siete"},{"noventa y ocho"},{"noventa y nueve"},
};
char
centenas[10][20] =
{
{""},{"ciento"},{"doscientos"},{"trescientos"},{"cuatrocientos"},{"quinientos"},{"seiscientos"},{"sietecientos"},{"ochocientos"},{"novecientos"},
};
std::cout
<< "Introduzca numero a transcribir: ";
std::cin
>> valor;
miles =
((int)valor)/1000;
cientos
= (((int)valor)%1000)/100;
unidades
= ((int)valor)%100;
decimales
= ((int) (valor*100.0))%100 ;
if (miles)
std::cout << numeros[miles] << " mil
";
if
(cientos)
std::cout
<< centenas[cientos] << " ";
if
(unidades)
std::cout
<< numeros[unidades];
if
(decimales)
{
if(miles
|| cientos || unidades)
{
std::cout << " con ";
}
std::cout << numeros[decimales] << "
centimos.";
}
std::cout << std::endl;
system("pause");
return
0;
}