POR FAVOR ES URGENTE

frepricar
07 de Marzo del 2006
NECESITO UN PROGRAMA EN C++ QUE ME LEA UN NUMERO COMPRENDIDO ENTRE 0 (CERO) Y 1.000.000 (UN MILLON), Y ESCRIBA SU VALOR EN LETRAS. LO UNICO QUE SE ES QUE TENGO QUE UTILIZAR LA SENTENCIA WHILE. POR FAVOR ES URGENTE. GRACIAS.

Caiman
07 de Marzo del 2006
Ayudate con esto:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

void main(void)
{
const char *numero[6][10]=
{
{" ","uno","dos","tres","cuatro","cinco","seis","siete","ocho","nueve"},
{" ","diez","veinte","treinta","cuarenta","cincuenta","sesenta","setenta","ochenta","noventa"},
{" ","cien","doscientos","trescientos","cuatrocientos","quinientos","seiscientos","setecientos","ochocientos","novecientos"},
{" ","mil","dos mil","tres mil","cuatro mil","cinco mil","seis mil","siete mil","ocho mil","nueve mil"},
{" ","diez mil","veinte mil","treinta mil","cuarenta mil","cincuenta mil","sesenta mil","setenta mil","ochenta mil","noventa mil"},
{" ","cien mil","doscientos mil","trescientos mil","cuatrocientos mil","quinientos mil","seiscientos mil","setecientos mil","ochocientos mil","novecientos mil"}
};
char cadena[7],num_char[2];
int num_int;

clrscr();
printf("\n\n\n\t\t De numeros a letras");
printf("\n\n\n Dame un numero mayor a 0 y menor a 1,000,000: ");
gets(cadena);
printf("\n\n El numero es: ");

short int posicion=(strlen(cadena))-1;
for(short int a=(strlen(cadena)-1);a>=0;a--)
{
num_char[0]=cadena[((strlen(cadena))-1)-a];
num_char[1]=\'\0\';
num_int=atoi(num_char);
printf("%s",numero[posicion][num_int]);
posicion--;

if(a>0)
printf(" - ");
}

getch();
}