elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Hola, una ayudita please
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Hola, una ayudita please  (Leído 2,089 veces)
jgarridc

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Hola, una ayudita please
« en: 11 Noviembre 2015, 19:08 pm »

¿por qué no me funciona éste código?, esta hecho para contar la cantidad de dígitos de un número cualquiera, siempre entero.

Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4.  
  5.  
  6. void main(){
  7.  
  8.    int num,cd;
  9.    cd=0;
  10.  
  11.    printf("Introduzca numero: ");
  12.    scanf("%d ", &num);
  13.  
  14.  
  15.        while (num!=0)
  16.            {
  17.  
  18.            num = num/10;
  19.            cd++;
  20.  
  21.        }
  22.        printf("El numero consta de %d digitos", cd);
  23.        system("pause");
  24. }
  25.  


En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Hola, una ayudita please
« Respuesta #1 en: 11 Noviembre 2015, 19:18 pm »

Hola, el código no te funciona porque tienes puesto en el scanf :

Código
  1. scanf("%d ", &num);

En lugar de:

Código
  1. scanf("%d", &num);

El comportamiento de scanf no está definido en ese formato, solo elimina los espacios antes del especificador de formato. Aquí tienes más información:

http://www.cplusplus.com/reference/cstdio/scanf/

El problema es que scanf lee todo lo que has puesto por consola y además lo que queda en el buffer, si tú le añades un espacio es como si estuviese esperando un carácter más, por eso no funciona. Date cuenta de que si pones cualquier numero y luego cualquier otro, el programa funciona, pero de forma incorrecta.

Un saludo.


« Última modificación: 11 Noviembre 2015, 19:25 pm por avesudra » En línea

Regístrate en
jgarridc

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Hola, una ayudita please
« Respuesta #2 en: 11 Noviembre 2015, 19:22 pm »

Joer, muchísimas gracias Avesudra me estaba volviendo loco, estoy aprendiendo a programar en C y estoy muy verde, pues eso, mil gracias por tu tiempo y un saludo.
En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Hola, una ayudita please
« Respuesta #3 en: 11 Noviembre 2015, 19:25 pm »

Joer, muchísimas gracias Avesudra me estaba volviendo loco, estoy aprendiendo a programar en C y estoy muy verde, pues eso, mil gracias por tu tiempo y un saludo.

De nada, aquí estamos para eso, ¡mucho ánimo!

PD: Una sugerencia, aunque sé que en algunas Universidades enseñan a trabajar con conio, system("pause") y fflush(stdin) y tendrás que utilizarlo casi por obligación te recomiendo que te pases por aquí:

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Un saludo.
« Última modificación: 11 Noviembre 2015, 19:33 pm por avesudra » En línea

Regístrate en
jgarridc

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Hola, una ayudita please
« Respuesta #4 en: 11 Noviembre 2015, 19:39 pm »

Muchísimas gracias, estoy estudiando C por mi cuenta, por placer y toda ayuda es poca....gracias de nuevo.
En línea

furciorifa

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: Hola, una ayudita please
« Respuesta #5 en: 12 Noviembre 2015, 20:38 pm »

Ya te respondieron es por el espacio esperado por scanf, te recomiendo igual no utilizar librerías que no sean estándar.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
HOLA, NECESITO UNA AYUDITA POR FAVOR..
Juegos y Consolas
saiayin 1 1,738 Último mensaje 18 Noviembre 2006, 21:50 pm
por DarK_FirefoX
[Resuelto] Como hago para que HOLA = hola?
Programación Visual Basic
agus0 4 3,668 Último mensaje 12 Febrero 2010, 11:48 am
por egrimm
Hola Chicos, Necesito ayudita con un notebook!
Windows
rsrvnsmth 3 5,682 Último mensaje 30 Diciembre 2010, 21:58 pm
por Randomize
Hola chicos, ayudita porfa con este codigo que llevo. solo faltan 2 cositas
Programación C/C++
califvv 4 2,796 Último mensaje 9 Diciembre 2012, 03:21 am
por califvv
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines