 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
EdsoN Cdt

Registrado: 08 Abr 2009Mensajes: 2
|
Publicado: Vie 10 Abr, 2009 2:04 am Asunto: leer un numero y desplegar el # en letras |
|
|
Hola que tal!!!
tengo un programa en C, el cual tiene que leer un numero y
desplegar el numero pero en letras...
por ejemplo 1234
son: mil doscientos treinta y cuatro
vi uno en el foro pero esta hecho con funciones y aun no he visto
funciones lo cual me se me dificulta un poco, lo que hice fue
modificarlo para no utilizar esa funcion, porque trade de correr el programa asi como esta y me marco varios errores y no pude
corregirlos... asi me quedo
[/code] | Código: |
#include<stdio>
#include<conio>
#include<stdlib>
#include<dos>
#include<string>
long n;
char xn[30],Letras[140],N1='0',N2='0',N3='0';
int ancho=strlen(xn),ancho2=strlen(xn),l=0,p=0,des=0,ban=0;
void main(void)
{ clrscr();
do
{ Letras[0]='\0';
clrscr();
printf("Dame un numero: ");
flushall(); gets(xn); n=atol(xn);
ban=0;
if(n==0&&xn[0]!='0')
{
printf("Error,solo se aceptan numeros");
delay(999);
ban=1;
}
}while(ban==1);
l=0;
while(l<=ancho-1)
{
if(ancho2-3==0 || ancho2-6==0 || ancho2-9==0)
{
p=3;
des=3;
}
if(ancho2-3==-1 || ancho2-6==-1 || ancho2-9==-1)
{
p=2;
des=2;
}
if(ancho2-3==-2 || ancho2-6==-2 || ancho2-9==-2)
{
p=1;
des=1;
}
/////////////////////////////////////////////////////////numeros de cienes
if(p==3)
{
N1=xn[l];
N2=xn[l+1];
N3=xn[l+2];
switch(N1)
{
case '0':
l++;
p--;
break;
case '1':
if(N2=='0' && N3=='0')
{
strcat(Letras," Cien ");
l+=2;
p-=2;
}
else
{
strcat(Letras," Ciento ");
l++;
p--;
}
break;
case '2':
strcat(Letras," Doscientos ");
l++;
p--;printf("%s",Letras);getch();
break;
case '3':
strcat(Letras," Trescientos ");
l++;
p--;
break;
case '4':
strcat(Letras," Cuatroscientos ");
l++;
p--;
break;
case '5':
strcat(Letras," Quinientos ");
l++;
p--;
break;
case '6':
strcat(Letras," Seiscientos ");
l++;
p--;
break;
case '7':
strcat(Letras," Setecientos ");
l++;
p--;
break;
case '8':
strcat(Letras," Ochocientos ");
l++;
p--;
break;
case '9':
strcat(Letras," Novecientos ");
l++;
p--;
break;
}
}
///////////////////////////////////////////// numeros de decenas
if(p==2)
{
N1=xn[l];
N2=xn[l+1];
switch(N1)
{
case '0':
l++;
p--;
break;
case '1':
if(N2!='0')
{
switch(N2)
{
case '1':strcat(Letras," Once ");
break;
case '2':strcat(Letras," Doce ");
break;
case '3':strcat(Letras," Trece ");
break;
case '4':strcat(Letras," Catorce ");
break;
case '5':strcat(Letras," Quince ");
break;
case '6':strcat(Letras," Diesciseis ");
break;
case '7':strcat(Letras," Diescisiete ");
break;
case '8':strcat(Letras," Diesciocho ");
break;
case '9':strcat(Letras," Diescinueve ");
break;
}
}
else
{
strcat(Letras," Diez ");
}
l+=2;
p-=2;
break;
case '2':
if(N2!='0')
{
strcat(Letras," Veinti");
l++;
p--;
}
else
{
strcat(Letras," Veinte ");
l+=2;
p-=2;
}
break;
case '3':
if(N2!='0')
{
strcat(Letras," Treinta y ");
l++;
p--;
}
else
{
strcat(Letras," Treinta ");
l+=2;
p-=2;
}
break;
case '4':
if(N2!='0')
{
strcat(Letras," Cuarenta y ");
l++;
p--;
}
else
{
strcat(Letras," Cuarenta ");
l+=2;
p-=2;
}
break;
case '5':
if(N2!='0')
{
strcat(Letras," Cincuenta y ");
l++;
p--;
}
else
{
strcat(Letras," Cincuenta ");
l+=2;
p-=2;
}
break;
case '6':
if(N2!='0')
{
strcat(Letras," Sesenta y ");
l++;
p--;
}
else
{
strcat(Letras," Sesenta ");
l+=2;
p-=2;
}
break;
case '7':
if(N2!='0')
{
strcat(Letras," Setenta y ");
l++;
p--;
}
else
{
strcat(Letras," Setenta ");
l+=2;
p-=2;
}
break;
case '8':
if(N2!='0')
{
strcat(Letras," Ochenta y ");
l++;
p--;
}
else
{
strcat(Letras," Ochenta ");
l+=2;
p-=2;
}
break;
case '9':
if(N2!='0')
{
strcat(Letras," Noventa y ");
l++;
p--;
}
else
{
strcat(Letras," Noventa ");
l+=2;
p-=2;
}
break;
}
}
/////////////////////////////////////////////////////////////////////////////// numeros ordinarios.
if(p==1)
{
N1=xn[l];
switch(N1)
{
case '0':
break;
case '1':
strcat(Letras,"Uno ");
break;
case '2':strcat(Letras,"Dos ");
break;
case '3':strcat(Letras,"Tres ");
break;
case '4':strcat(Letras,"Cuatro ");
break;
case '5':strcat(Letras,"Cinco ");
break;
case '6':strcat(Letras,"Seis ");
break;
case '7':strcat(Letras,"Siete ");
break;
case '8':strcat(Letras,"Ocho ");
break;
case '9':strcat(Letras,"Nueve ");
break;
}
l++;
}
/////////////////////////////////////////////////////////////////////////////////// miles
if(N1!='0')
{
if(ancho2==10 || ancho2==11 || ancho2==12)
if (ancho2==7 && N1=='1')
strcpy(Letras," Un Billon ");
else
strcat(Letras," Billones ");
if(ancho2==8 || ancho2==9 || ancho2==7)
if (ancho2==7 && N1=='1')
strcpy(Letras," Un Millon ");
else
strcat(Letras," Millones ");
if(ancho2==5 || ancho2==6 || ancho2==4)
if (ancho2==4 && N1=='1')
strcpy(Letras," Mil ");
else
strcat(Letras," Mil ");
}
ancho2=ancho2-des;
}
printf("%s",Letras);
getch();
}
|
se los agradecere mucho...
saludos y que tengan un buen dia.
Ultima edición por EdsoN el Vie 10 Abr, 2009 11:58 pm, editado 1 vez |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 10 Abr, 2009 6:52 am Asunto: Re: leer un numero y desplegar el # en letras |
|
|
¿Se te ha ocurrido usar el buscador? https://cppbuilder.es/viewtopic.php?t=7420
| EdsoN escribió: | Hola ke tal!!!
tengo ke hacer un programa en C
el cual tiene que leer un numero y
desplegar el numero pero en letras...
por ejemplo 1234
son: mil doscientos treinta y cuatro
he visto ke tienen soluciones parecidas pero
lo kise probar pero no logre que korriera
se los agradecere mucho...
saludos y ke tengan un buen dia. |
Dos cosas.
Primero: ¡¡ESCRIBE BIEN!! No cuesta nada hacerlo y facilita las cosas a quienes lo leemos.
Segundo: Aquí se pide ayuda cuando no somos capaces de encontrar la solución; no eres el primero con cosas como "Tengo que hacer un programa y no sé como, ¿me ayudan?". Esfuérzate un poco antes de pedir socorro. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
EdsoN Cdt

Registrado: 08 Abr 2009Mensajes: 2
|
Publicado: Mar 14 Abr, 2009 11:29 pm Asunto: Re: leer un numero y desplegar el # en letras |
|
|
| Código: | //ZILE_EXA2
//FECHA: 12-abril-09
//DESCRIPCION: NUMEROS A LETRAS.
//NOMBRE: LUIS EDSON ZARRABAL IBARRA
#include<stdio>
#include<conio>
#include<stdlib>
#include<dos>
#include<string>
long n;
char xn[30],xcen[2],letras[140],N1='0',N2='0',N3='0';
int l=0,p=0,des=0,ban=0,ancho=0,ancho2=0,opc=0;
void main(void)
{ clrscr();
do
{
do
{ letras[0]='\0';
clrscr();
printf("Dame un numero: ");
flushall(); gets(xn); n=atol(xn);
ban=0;
ancho=strlen(xn);
ancho2=strlen(xn);
if(n==0&&xn[0]!='0')
{
printf("Error,solo se aceptan numeros");
delay(999);
ban=1;
}
if(ancho>9)
{
printf("Solo numeros menores de 10 digitos");
delay(999);
ban=1;
}
}while(ban==1);
l=0;
while(l<=ancho-1)
{
if(ancho2-3==0 || ancho2-6==0 || ancho2-9==0)
{
p=3;
des=3;
}
if(ancho2-3==-1 || ancho2-6==-1 || ancho2-9==-1)
{
p=2;
des=2;
}
if(ancho2-3==-2 || ancho2-6==-2 || ancho2-9==-2)
{
p=1;
des=1;
}
/////////////////////////////////////////////////////////numeros de cienes
if(p==3)
{
N1=xn[l];
N2=xn[l+1];
N3=xn[l+2];
switch(N1)
{
case '0':
l++;
p--;
break;
case '1':
if(N2=='0' && N3=='0')
{
strcat(letras," Cien ");
l+=2;
p-=2;
}
else
{
strcat(letras," Ciento ");
l++;
p--;
}
break;
case '2':
strcat(letras," Doscientos ");
l++;
p--;
break;
case '3':
strcat(letras," Trescientos ");
l++;
p--;
break;
case '4':
strcat(letras," Cuatroscientos ");
l++;
p--;
break;
case '5':
strcat(letras," Quinientos ");
l++;
p--;
break;
case '6':
strcat(letras," Seiscientos ");
l++;
p--;
break;
case '7':
strcat(letras," Setecientos ");
l++;
p--;
break;
case '8':
strcat(letras," Ochocientos ");
l++;
p--;
break;
case '9':
strcat(letras," Novecientos ");
l++;
p--;
break;
}
}
///////////////////////////////////////////// numeros de decenas
if(p==2)
{
N1=xn[l];
N2=xn[l+1];
switch(N1)
{
case '0':
l++;
p--;
break;
case '1':
if(N2!='0')
{
switch(N2)
{
case '1':strcat(letras," Once ");
break;
case '2':strcat(letras," Doce ");
break;
case '3':strcat(letras," Trece ");
break;
case '4':strcat(letras," Catorce ");
break;
case '5':strcat(letras," Quince ");
break;
case '6':strcat(letras," Diesciseis ");
break;
case '7':strcat(letras," Diescisiete ");
break;
case '8':strcat(letras," Diesciocho ");
break;
case '9':strcat(letras," Diescinueve ");
break;
}
}
else
{
strcat(letras," Diez ");
}
l+=2;
p-=2;
break;
case '2':
if(N2!='0')
{
strcat(letras," Veinti");
l++;
p--;
}
else
{
strcat(letras," Veinte ");
l+=2;
p-=2;
}
break;
case '3':
if(N2!='0')
{
strcat(letras," Treinta y ");
l++;
p--;
}
else
{
strcat(letras," Treinta ");
l+=2;
p-=2;
}
break;
case '4':
if(N2!='0')
{
strcat(letras," Cuarenta y ");
l++;
p--;
}
else
{
strcat(letras," Cuarenta ");
l+=2;
p-=2;
}
break;
case '5':
if(N2!='0')
{
strcat(letras," Cincuenta y ");
l++;
p--;
}
else
{
strcat(letras," Cincuenta ");
l+=2;
p-=2;
}
break;
case '6':
if(N2!='0')
{
strcat(letras," Sesenta y ");
l++;
p--;
}
else
{
strcat(letras," Sesenta ");
l+=2;
p-=2;
}
break;
case '7':
if(N2!='0')
{
strcat(letras," Setenta y ");
l++;
p--;
}
else
{
strcat(letras," Setenta ");
l+=2;
p-=2;
}
break;
case '8':
if(N2!='0')
{
strcat(letras," Ochenta y ");
l++;
p--;
}
else
{
strcat(letras," Ochenta ");
l+=2;
p-=2;
}
break;
case '9':
if(N2!='0')
{
strcat(letras," Noventa y ");
l++;
p--;
}
else
{
strcat(letras," Noventa ");
l+=2;
p-=2;
}
break;
}
}
/////////////////////////////////////////////////////////////////////////////// numeros ordinarios.
if(p==1)
{
N1=xn[l];
switch(N1)
{
case '0':
break;
case '1':
strcat(letras,"Uno ");
break;
case '2':
strcat(letras,"Dos ");
break;
case '3':
strcat(letras,"Tres ");
break;
case '4':
strcat(letras,"Cuatro ");
break;
case '5':
strcat(letras,"Cinco ");
break;
case '6':
strcat(letras,"Seis ");
break;
case '7':
strcat(letras,"Siete ");
break;
case '8':
strcat(letras,"Ocho ");
break;
case '9':
strcat(letras,"Nueve ");
break;
}
l++;
}
/////////////////////////////////////////////////////////////////////////////////// miles
if(N1!='0')
{
if(ancho2==8 || ancho2==9 || ancho2==7)
if (ancho2==7 && N1=='1')
strcpy(letras," Un Millon ");
else
strcat(letras," Millones ");
if(ancho2==5 || ancho2==6 || ancho2==4)
if (ancho2==4 && N1=='1')
strcpy(letras," Mil ");
else
strcat(letras," Mil ");
}
ancho2=ancho2-des;
}clrscr();
printf("\n$ %s",xn);
printf("\nSon: \"%s\"M.N",letras);
printf("\n\n\nEnter para continuar o Esc para salir");
opc=getch();
}while(opc==13);
} |
|
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|