Informática, pregunta formulada por jhoncuba123, hace 3 meses

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

Contestado por LeonardoDY
1

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];

}

Otras preguntas