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." (Este sería el número más grande a transcribir, tampoco hace falta pasarse :D)
El código os lo dejo a continuación, ya veréis que no es complicado. Si hay algo que no entendáis , decidlo.
#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;
}