Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda de principiante para C

Estas en el tema de Ayuda de principiante para C en el foro de C/C++ en Foros del Web. Simplemente quiero ayuda para un pequeño problema que me plantean, seguro que es algo muy simple, pero es que estoy empezando y no se me ...
  #1 (permalink)  
Antiguo 01/01/2008, 07:44
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 16 años, 4 meses
Puntos: 0
Ayuda de principiante para C

Simplemente quiero ayuda para un pequeño problema que me plantean, seguro que es algo muy simple, pero es que estoy empezando y no se me ocurre nada...

El enunciado del problema es:

"Escribir una función que devuelva el número de cifras de un entero que se introduzca por pantalla"


He hecho ya la función con el parámetro del número que te piden, pero una vez en estoy en esa función, no sé como contabilizar las cifras del número que me dan. Tengo algo así:

#include <stdio.h>
#include <stdlib.h>

int Cifras (int num);

int main(void)
{
int num;
int resultado;


printf ("Introduzca un numero:");
scanf ("%d", &num);
fflush (stdin);

resultado = Cifras(num);
printf ("Hay %d cifras\n", resultado);


system("pause");
}


int Cifras (int num)

{

}


Muchas gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 02/01/2008, 07:35
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Ayuda de principiante para C

Dividi el numero por 10 mientras puedas.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 03/01/2008, 18:12
 
Fecha de Ingreso: enero-2008
Mensajes: 6
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda de principiante para C

lo que puedes hacer es algo como esto

int Cifras (int num){

int cont=0;
float aux;
aux=num;
while(aux>1){
aux=aux/10;
cont=cont+1;
}
return(cont-1);
}

asi por ejemplo:
num=6
en la primera iteracion,
aux=0.6
cont=1
despues, ya no hay otra iteracion pues aux<1
entonces tienes una cifra
  #4 (permalink)  
Antiguo 03/01/2008, 18:13
 
Fecha de Ingreso: enero-2008
Mensajes: 6
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda de principiante para C

peron tienes que que devolver

return(cont);
  #5 (permalink)  
Antiguo 04/01/2008, 02:07
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Ayuda de principiante para C

Con 100 da 1 y 2 cifras (dependiendo del return que uses), al ser la ultima cifra 0. Igual no me parece que sea necesario usar un float cuando el numero de cifras es entero. Si tenemos en cuenta que cualquier numero - incluso 0 - tiene al menos una cifra podemos empezar con nuestra variable contador a 1 y despues incrementarla dentro de un bucle que compruebe que el numero sigue siendo mayor a 9 y lo divida por 10.

Generalmente no pongo codigo pero si ya publicaron una forma de hacerlo y no parece que el interesado haya vuelto jamas ...

Código:
int Cifras (int num)
{
  int c = 1;
  for (;num > 9; num /= 10) { c++; }
  return c;
}
PD. Hay un boton de editar abajo del mensaje, lo podes usar en casos como ese para arreglar tu mensaje original.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:58.