Hola chicos, un saludo para todos, no suelo crear este tipo de topics, pero me ví en la necesidad de pedir ayuda, hace días vengo con un trabajo que me pusieron en el instituto, el programa se llama «Monto Escrito» quizas muchos de ustedes lo conozcan, resulta y sucede que me toca hacerlo en C++, yo lo habia estudiado en otro lenguaje, y urgando en la web encontré un codigo que al parecer funcióna y está en C, pero desconozco la sintaxis de este lenguaje, entonces mi favor es si alguno tiene un tiempecito y me ayude con la transcripción a C++,
Mostrar/Ocultar
Código: Seleccionar todo
#include <stdio.h>
main()
{
int num[10];
int i,j=1,p;
printf("Introduce un numero \n");
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]!='\0' || num[3]!='\0' || num[6]!='\0') )
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;
}
Como ven, este programa es C (lo sé porque averigue sobre el lenguaje) sé cositas como el COUT que reemplaza al printf, pero desconozco la funcion de GETCHAR() en este ejemplo, asi que chicos, muchas gracias :)
Los quiero, se cuidan