Título: [C][?] Duda con algoritmo en C Publicado por: doSomething() en 30 Mayo 2019, 12:49 pm Buenas a todos, soy nuevo en el foro y en esto de la programación, y tengo una duda con un algoritmo en C. Encontré un ejercicio que no se muy bien como tratar y que consiste en diseñar una función que reciba un número entero positivo y devuelva la cifra i-ésima de este. La función posee el prototipo "int cifra_iesima(int n, int i)" siendo "n" el número e "i" la cifra que solicito que me devuelva la función. He probado de distintas maneras, pero no logro dar con la solución, además he creado una función auxiliar que calcula el número de cifras que posee el número, el cual introduzco por teclado. Mi código es el siguiente:
Código:
Título: Re: [C][?] Duda con algoritmo en C Publicado por: xiruko en 30 Mayo 2019, 13:22 pm Hola,
Una posibilidad sería pasar el número a una cadena y así luego simplemente devuelves la posición que te interese. Hace mucho que no toco C pero sería algo así (no lo he probado por lo que igual hay algún error): Código
Ten en cuenta que aquí considero que la primera cifra tiene el índice 0. Si quisieras que empezara a contar en el índice 1, deberías restarle uno a la variable index. Saludos! Título: Re: [C][?] Duda con algoritmo en C Publicado por: K-YreX en 30 Mayo 2019, 13:34 pm Para hacer ese ejercicio con lo que ya tienes solo necesitas esto:
Código Eso de ahí va sacando la última cifra de un número. Ahora adapta eso a lo que necesitas tú. Suerte :-X Título: Re: [C][?] Duda con algoritmo en C Publicado por: doSomething() en 30 Mayo 2019, 13:40 pm Gracias xiruko e Yrex-DwX por las respuestas. Justo hace unos segundos he conseguido dar con una solución usando la división y el módulo, tal y como has indicado Yrex. La función es esta:
Código: int cifra_iesima(int n, int i) { Título: Re: [C][?] Duda con algoritmo en C Publicado por: K-YreX en 30 Mayo 2019, 17:58 pm Te dejo un par de funciones para calcularlo sin iteraciones, es decir, sin bucles. Seguro que también se puede hacer con bucles de una forma más sencilla que la que tienes implementada, por si te apetece intentarlo.
Código
|