Necesito un codigo

Cerrado
ronald peraza Mensajes enviados 2 Fecha de inscripción sábado, 25 de octubre de 2008 Estatus Miembro Última intervención sábado, 25 de octubre de 2008 - 25 oct 2008 a las 22:49
Retro78 Mensajes enviados 15 Fecha de inscripción viernes, 4 de abril de 2008 Estatus Miembro Última intervención jueves, 30 de octubre de 2008 - 30 oct 2008 a las 17:09
Hola,amigos necesito ayuda, alguien tiene un codigo en c++.net que convierta un numero en letras. Por ejemplo
"1250"= Mil doscientos cincuenta.

1 respuesta

Retro78 Mensajes enviados 15 Fecha de inscripción viernes, 4 de abril de 2008 Estatus Miembro Última intervención jueves, 30 de octubre de 2008 31
30 oct 2008 a las 17:09
Este a mi me funciona muy bien , Espero que a vos tamb! Suerte!


#include <stdio.h>
main()
{
int num[10];
int i,j=1,p;
printf("Introduce un numero no mayor a 999,999,999n");
for(i=0;(num[i]=getchar()) != 'n';i++);

if(i>6&&i<=9) p=6;
else if(i>3&&i<=6){ p=3; j++; }
else if(i>0&&i<=3){ p=0; j+=2; }
for(j=j;j<=3;j++)
{
/*centenas*/
if((i==3 || i==6)||(num[0]!='�' || num[3]!='�' || num[6]!='�') )
switch(num[i-(3+p)])
{
case'1':if((num[(i-(3+p))+1]!='0') || (num[(i-(3+p))+2]!='0'))
printf("ciento ");
else
printf("cien ");
break;
case'2':printf("doscientos ");break;
case'3':printf("trescientos ");break;
case'4':printf("cuatrocientos ");break;
case'5':printf("quinientos ");break;
case'6':printf("seiscientos ");break;
case'7':printf("setecientos ");break;
case'8':printf("ochocientos ");break;
case'9':printf("novecientos ");break;
}
/*decenas*/

switch(num[i-(p+2)])
{
case'1':switch(num[(i-(p+2))+1])
{
case'0':printf("diez ");break;
case'1':printf("once ");break;
case'2':printf("doce ");break;
case'3':printf("trece ");break;
case'4':printf("catorce ");break;
case'5':printf("quince ");break;
case'6':printf("diesciseis ");break;
case'7':printf("diescisiete ");break;
case'8':printf("diesciocho ");break;
case'9':printf("diescinueve ");break;
}break;
case'2':if(num[(i-(p+2))+1]=='0') printf("veinte ");
else printf("veinti"); break;
case'3':printf("treinta "); if(num[(i-1)-p]!='0') printf("y "); break;
case'4':printf("cuarenta "); if(num[(i-1)-p]!='0') printf("y "); break;
case'5':printf("cincuenta "); if(num[(i-1)-p]!='0') printf("y "); break;
case'6':printf("secenta "); if(num[(i-1)-p]!='0') printf("y "); break;
case'7':printf("setenta "); if(num[(i-1)-p]!='0') printf("y "); break;
case'8':printf("ochenta "); if(num[(i-1)-p]!='0') printf("y "); break;
case'9':printf("noventa "); if(num[(i-1)-p]!='0') printf("y "); break;
}
/*unidades*/
if(num[i-(p+2)]!='1')
switch(num[(i-1)-p])
{
case'1':if(p>=3) printf("un ");
else printf("uno");
break;
case'2':printf("dos ");break;
case'3':printf("tres ");break;
case'4':printf("cuatro ");break;
case'5':printf("cinco ");break;
case'6':printf("seis ");break;
case'7':printf("siete ");break;
case'8':printf("ocho ");break;
case'9':printf("nueve ");break;
}
if(p==6 && num[0]=='0' && p==6 && num[1]=='0' && p==6 && num[2]=='0');
else if(p==6 && num[0]=='1' && i==7) printf("millon ");
else if(p==6) printf("millones ");
if(p==3 && num[p]!='0'|| p==3 && num[p+1]!='0' || p==3 && num[p+2]!='0')printf("mil ");
p-=3;
}
getchar();
return 0;
}
0