Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

leer un numero y desplegar el # en letras

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: leer un numero y desplegar el # en letras Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Re: leer un numero y desplegar el # en letras Responder citando

¿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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Re: leer un numero y desplegar el # en letras Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.