Pages

jueves, 3 de enero de 2013

Algoritmo para Convertir Numeros a Letras - Codigo Fuente en C ++

Problema
Desarrollar un programa donde se ingrese un número y lo convierta en letras.
Solución
Esta programa solo acepta números que van desde el  cero al noventa y nueve,  el usuario ingresa un número  y la aplicación retornara  dicho número convertido en letras.
Ejemplo
  - Entrada: 92
  - Salida:  noventa y dos.
Código Fuente en C++
#include <string>
#include <iostream>

using namespace std;

int main()
{
    string unidades[] = 
    {"cero", "uno", "dos" ,"tres" ,"cuatro" ,"cinco" ,
            "seis" ,"siete" ,"ocho" ,"nueve","diez"};
    string especiales[] = 
    {"once", "doce","trece","catorce", "quince",
              "diezciseis", "diecisiete", "dieciocho", "diecinueve"};
    string decenas[] = 
    {"veinte", "treinta","cuarenta","cincuenta", "sesenta",
           "setenta", "ochenta", "noventa"};
    
    cout << "Ingrese un numero entre 0-99: ";
    int num;
    cin >> num;

    if(num>=0 && num<11)
        cout << endl << unidades[num];
    else if(num<20)
        cout << endl << especiales[num-11];
    else if(num<100){
        int unid = num % 10;
        int dec = num/10;
        if(unid == 0)
            cout << endl << decenas[dec-2] ;
        else
            cout << endl << decenas[dec-2] <<" y " <<unidades[unid];
    }
    else
        cout << "El numero debe ser menor a 100";

    return 0;
}


3 comentarios:

Anónimo dijo...

cuantos caracteres tiene cada arreglo cadena ?12,10 y 9? o por que no le pones lo largo de cada arreglo cadena?

Anónimo dijo...

porque al imprimir cuando es numero especial se le pone -11 e igual en las decenas -2?

Anónimo dijo...

como lo harias sin cout y cin, (con printf y scanf)?

Publicar un comentario