elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 10:14  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  necesito saber como ingresar 1 nº entero >0 y <=100 luego contar sus digitos....
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: necesito saber como ingresar 1 nº entero >0 y <=100 luego contar sus digitos....  (Leído 6,434 veces)
DarkItachi


Desconectado Desconectado

Mensajes: 511


Itachi Uchiha


Ver Perfil
Re: necesito saber como ingresar 1 nº entero >0 y <=100 luego contar sus digitos....
« Respuesta #15 en: 9 Abril 2009, 12:15 »

Aqui el mio:

Código
#include <iostream>
using namespace std;
 
main()
{
     int num, dgt;
     while (1==1)
     {
           cout<<endl<<"Introduzca numero: ";
           cin>>num;
           cout<<endl;
           if (num>0 && num<=100)
           {
               if (num<10) dgt=1;
               if (num>9) dgt=2;
               if (num==100) dgt=3;
               break;
           }
           else
           {
               cout<<"Introduzca un numero valido!"<<endl; continue;
           }
     }
     system("cls");
     cout<<"El numero es: "<<num<<endl;
     if (num==100)
     {
        cout<<"El numero invertido es 001."<<endl;
     }
     else if (num>=10)
     {
        int nvr, nvr2;
        nvr=num % 10;      
        nvr2=num/10;
        cout<<"El numero invertido es " << nvr << nvr2 <<endl;
     }
     else if (num<10)
     {
          cout<<"El numero invertido es " << num<<endl;
     }
     cout<<"El Numero de digitos del numero es: "<<dgt<<endl;
     system("pause");
}
 


En línea

Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: necesito saber como ingresar 1 nº entero >0 y <=100 luego contar sus digitos....
« Respuesta #16 en: 9 Abril 2009, 21:11 »

En Batch Script :
Código
@echo off
setlocal enabledelayedexpansion
:code
set /p "numero=Numero : "
if not defined numero (goto:code)
if %numero% gtr 0 (
if %numero% lss 100 (
call:view %numero%
goto:eof
) else (
echo Mal.
exit /b 1
)
)
goto:eof
:view
set "numero=%1"
set "numero2=%1"
set /a "contador=0"
:bucle
if not defined numero (goto:end)
set "numero=%numero:~1%"
set /a "contador+=1"
goto:bucle
:end
echo.%numero2% tiene %contador% digitos.
set /a "contador-=1"
echo.Invertido : %numero2:~-1%%numero2:~0,1%
set /p ,=
exit /b 0

Salida :

Código:
Numero : 73
73 tiene 2 digitos.
Invertido : 37


En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Eliptico

Desconectado Desconectado

Mensajes: 153


Ver Perfil
Re: necesito saber como ingresar 1 nº entero >0 y <=100 luego contar sus digitos....
« Respuesta #17 en: 27 Mayo 2009, 23:28 »

¿Y de esta forma?  ;D
Código
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int agrc,char* argv[])
{
   char numero[4]; /*para poder guardar 3 digitos*/
   int num;
   char i; /*un contador pequeñico para los bucles*/
 
   do{
       printf("Introduce un numero entre 1 y 100, ambos incluidos: ");
       fflush(stdin);
       scanf("%d",&num);
   }while(num<0 || num>100);
 
   sprintf(numero,"%d",num);
 
    printf("El numero tiene %d cifras.\n",strlen(numero));
    printf("El numero invertido es: ");
 
    for(i=strlen(numero)-1;i>=0;i--)
       printf("%c",numero[i]);
    printf("\n");
 
    system("PAUSE");
 
   return 0;
}
 

Bueno, ya se que es C, pero se popdra transportar a C++ no?
« Última modificación: 28 Mayo 2009, 07:41 por Eliptico » En línea
Eliptico

Desconectado Desconectado

Mensajes: 153


Ver Perfil
Re: necesito saber como ingresar 1 nº entero >0 y <=100 luego contar sus digitos....
« Respuesta #18 en: 28 Mayo 2009, 08:24 »

Y aun otra forma mas divertida de hacerlo:
Código
#include <stdio.h>
#include <stdlib.h>
 
#define MAX 10000
 
struct NodoEntero
{
   unsigned char cifra;
   NodoEntero* Enlace;
};
typedef struct NodoEntero NodoEntero;
typedef NodoEntero* ptrNodoEntero;
 
void push(ptrNodoEntero* Base,unsigned char valor);
unsigned char pop(ptrNodoEntero*);
char pila_vacia(ptrNodoEntero);
 
int main(int argc,char* argv[])
{
   int numero,numcifras=0,potenciaDiez=1;
   ptrNodoEntero basePila=NULL;
 
   do{
       printf("Introduce un numero entre 1 y %d (ambos incluidos): ",MAX);
       fflush(stdin);
       scanf("%d",&numero);
   }while(numero<0 || numero>MAX);
 
   do{
       push(&basePila,numero%10);
       numero/=10;
       numcifras++;
   }while(numero!=0);
 
   printf("El numero tiene %d cifras\n",numcifras);
 
   do{
       numero += potenciaDiez * pop(&basePila);
       potenciaDiez*=10;
   }while(!pila_vacia(basePila));
 
   printf("El numero invertido es: %d\n",numero);
 
   system("PAUSE");
}
 
void push(ptrNodoEntero* Base,unsigned char valor)
{
   ptrNodoEntero NuevoNodo;
 
   NuevoNodo=(NodoEntero*)malloc(sizeof(NodoEntero));
   NuevoNodo->cifra=valor;
   NuevoNodo->Enlace=(*Base);
   (*Base)=NuevoNodo;
}
 
unsigned char pop(ptrNodoEntero* Base)
{
   ptrNodoEntero Aux;
   unsigned char ret;
 
   Aux=(*Base);
   ret=(*Base)->cifra;
   (*Base)=(*Base)->Enlace;
   free(Aux);
 
   return ret;
}
 
char pila_vacia(ptrNodoEntero Base)
{
   return (Base==NULL ? 1 : 0);
}
 

Jejeje, a ver si cae otra forma....

¿Se nota que me aburro?

Un saludo!!!!!!!!!!!!!
« Última modificación: 28 Mayo 2009, 08:31 por Eliptico » En línea
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines