Construir un programa que solicite un número de 0 a 99 y lo muestre escrito. Por ejemplo,
para 56 mostrar: cincuenta y seis.
En c++
Respuestas a la pregunta
Para separar las unidades y las decenas podemos utilizar los operadores "%" (resto) y "/" (división) respectivamente. Luego tendremos que traducir en strings las decenas y unidades usando sendas cadenas de caracteres.
Debemos tener en cuenta a la hora de asignar un valor a una cadena que la sentencia "cadena="pepe"" no es correcta, debemos utilizar la función "strcpy()" en el header "string.h".
Así como para usar los flujos de entrada y salida debemos incluir la librería "iostream" y colocar la sentencia "using namespace std".
Vamos a usar una tabla para los números de 0 a 20, ya que tienen particularidades y un switch-case para el resto. El código queda así:
#include <string.h>
#include <iostream>
using namespace std;
int main (void)
{
char decena[10], unidad[10];
int aux, número;
char *ceroaveinte[]={"cero", "uno","dos","tres","cuatro","cinco","seis","siete","ocho","nueve","diez","once"},"doce","trece","catorce","quince","dieciseis","diecisiete","dieciocho","diecinueve","veinte"};
cout<<"Ingrese un número entre 0 y 99: ";
cin>>numero;
if(numero>20){//de 21 a 99
aux=numero/10;
switch(aux){
case 2:strcpy(decena,"veinti");break;
case 3:strcpy(decena,"treinta");break;
case 4:strcpy(decena,"cuarenta");break;
case 5:strcpy(decena,"cincuenta");break;
case 6:strcpy(decena,"sesenta");break;
case 7:strcpy(decena,"setenta");break;
case 8:strcpy(decena,"ochenta");break;
case 9:strcpy(decena,"noventa");break;
}
aux=numero%10;
strcpy(unidad, ceroaveinte[aux]);//Aprovechaos la tabla creada
if(numero>=30)//de 30 a 99
cout<<decena<<" y "<<unidad;
else //de 21 a 29 los números son veinti+x donde x es la unidad
cout<<decena<<unidad;
}
else //de 0 a 20
cout<<ceroaveinte[numero];
}