Ayuda urgente con un programa de microsoft visual c++

Iniciado por massimo, 12 Noviembre 2011, 07:07 AM

0 Miembros y 1 Visitante están viendo este tema.

massimo

Buenas noches, soy nuevo en la pagina y si rompo alguna reglea o algo x favor diganme..
mi problema es el siguiente, la verdad no se mucho de c++ pero por obra de la vida estoy a punto de terminar esta materia...
Necesito crear un programa en el que introduzca un numero... y este me imprima el nombre del numero.. es decir si yo pongo 6 , salga: seis!...
el programa va del 0 al 1000!

Y lo que llevo es esto...
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
string unidades[15], decenas[10], centenas[10];
int a, b, c;

char n[4];

void main ()
{

unidades[1]="uno \n";
unidades[2]="dos \n";
unidades[3]="tres \n";
unidades[4]="cuatro \n";
unidades[5]="cinco \n";
unidades[6]="seis \n";
unidades[7]="siete \n";
unidades[8]="ocho \n";
unidades[9]="nueve \n";
unidades[10]="Diez";
unidades[11]="Once";
unidades[12]="Doce";
unidades[13]="Trece";
unidades[14]="Catorce";
unidades[15]="Quince";

decenas[1]="Diez";
decenas[2]="Veinte ";
decenas[3]="treinta";
decenas[4]="cuarenta";
decenas[5]="cincuenta";
decenas[6]="sesenta";
decenas[7]="setenta";
decenas[8]="ochenta";
decenas[9]="noventa";

centenas[1]="ciento";
centenas[2]="Docientos";
centenas[3]="Trecientos";
centenas[4]="Cuatrocientos";
centenas[5]="Quinientos";
centenas[6]="Seicientos";
centenas[7]="Setecientos";
centenas[8]="Ochocientos";
centenas[9]="Novecientos";
centenas[10]="Mil";

a = n[0];
b = n[1];
c = n[2];


printf("Convierte de numero a letra :");
   cin>>n;

   {
cout<<centenas[a]<<" "<<decenas<<"y"<<unidades[c];

if (b==1)
{ cout<<centenas[a]<<"Dieci"<<unidades[c];
}
else
{
   if (b==2)
   {cout<<centenas[a]<<"Veinti"<<unidades[c]; }
}
   }

}


pero el programa no me corre, no imprime ningun valor solo la "y"...
que necesito para que sirva?..

pd.. el profe es de esos que no enseña pero exige.. y nos dijo que el programa no debe pasar de 4 lineas ( sin contar lo de unidades, dec. centenas xq sino creo que seria imposible,

De ante mano gracias :)!

BlackZeroX

#1
Cita de: massimo en 12 Noviembre 2011, 07:07 AM

pd.. el profe es de esos que no enseña pero exige.. y nos dijo que el programa no debe pasar de 4 lineas ( sin contar lo de unidades, dec. centenas xq sino creo que seria imposible,


que loco tu profesor...

Temibles Lunas!¡.
The Dark Shadow is my passion.

massimo

no le entiendo mucho  :huh: mas bien nada D:
pero no quiero un nuevo programa, solo que me digan que le falta al que puse para que funcione  :-\

BlackZeroX

#3
Mira te paso uno pero esta en vb6... te traduce cualquier numero a su nombre desde el 1 al 999999999999999999999999999999999999999999999999999999999999999999

en su variacion de nombre corto.

Citar

novecientos noventa y nueve mil novecientos noventa y nueve decillones novecientos noventa y nueve mil novecientos noventa y nueve nonillones novecientos noventa y nueve mil novecientos noventa y nueve octillónes novecientos noventa y nueve mil novecientos noventa y nueve septillones novecientos noventa y nueve mil novecientos noventa y nueve sextillónes novecientos noventa y nueve mil novecientos noventa y nueve quintillónes novecientos noventa y nueve mil novecientos noventa y nueve cuatrillónes novecientos noventa y nueve mil novecientos noventa y nueve trillones novecientos noventa y nueve mil novecientos noventa y nueve billones novecientos noventa y nueve mil novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve


No te lo tradusco a C/C++ eso sera cosa tuya si quieres, te lo pongo debido a que te lo piden en 4 lineas... Nadie hace esto en 4 lineas ... ve mi codigo y revisa en que fallas ya que son similares (Dividelo en Procesos/Funciones).

Numeros a Letras o aqui en el sub-foro respectivo

Nota: Cuando pueda lo tradusco a C/C++ mientrastanto te servira como guia (Mas que nada como guia del proceso... recuerda que vb6 es distinto de C/C++).

Dulces Lunas!¡.
The Dark Shadow is my passion.

rir3760

En mi opinión se esta asumiendo que el enunciado pide mas de lo esperado.

Porque si solo se trata de practicar con los operadores de división y modulo serian suficientes las cuatro lineas para extraer los dígitos de los millares, centenas, decenas y unidades.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language