C/Visual C - algoritmo

   
Vista:

algoritmo

Publicado por eduardo (82 intervenciones) el 23/10/2007 18:27:20
Hola a todos:
Encontré en un libro de Deitel un algoritmo:
-Pide ingresar un numero entero positivo
-Pasar ese numero a una funcion y que esta lo muestre
en pantalla cada digito separado por un espacio en blanco

Ejemplo:
Si ingresa 5487 debe mostrarse
5 4 8 7

No se debe usar arrays para la solución, sólo variables int,
parece bastante sencillo pero a mi me tomó más de 1 hora
hallar la solución

Se puede usar otra funcion adicional...

Para uds expertos les tomará pocos minutos pero a mi que soy novato demoré
bastante : )
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
int main()
{
int num;

cout << "ingrese numero << endl;
cin >> num;

char sz[15];
itoa(num, sz, 10);

for (int i = 0; i < strlen(sz); i++)
{
cout << sz[i] << " ";
}
cout << endl;

return EXIT_SUCCESS;
}

¿Será?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:algoritmo

Publicado por Tom (480 intervenciones) el 24/10/2007 16:09:07
/* */
void separa(int numero) {
int div = exp10(log10(numero));

for(;div > 0; div/=10) {
printf("%d ", numero / div);
numero %= div;
}
printf("\n");
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

una solucion

Publicado por eduardo (82 intervenciones) el 24/10/2007 18:32:46
Buen intento Fernando pero un punto era no usar arrays.
Que raro Tom anduve buscando la función exp10 y no la encuentro.

Bueno yo encontré la sgte solución:

int main( void )
{
long numero;

printf( "\tEste programa separa con un espacio los digitos\n"
"\tde un numero entero\n\n" );

printf( " Ingrese numero: " );
scanf( "%ld", &numero );
printf( "\n" );

muestra_digitos( numero );

getch();
return 0;
}

void muestra_digitos( long numero ) {
int n = digitos( numero );
int exp = n;
int i; /* contador */
int dig;
int aux;

for ( i = 1; i <= n; i++ ) {
aux = numero / pow( 10, --exp );
dig = aux % 10;
printf( "%d ", dig );
}
printf( "\n" );
}

/* Esto devuelve el número de digitos del numeral */
int digitos( long numero ) {
int n = 0;

while( numero > 0 ) {
numero = numero / 10;
n++;
}
return n;
}

/* : ) que les pareció este problemita pronto les traeré otro
salu2 */
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar