Sucede que me dejaron hacer un programa donde yo escriba un numero, por ejemplo 23554 y lo que tiene que hacer el programa es imprimir en pantalla otro numero que salga de unos cálculos.
Las condiciones son que
1.- Imprima en pantalla la división del numero ingresado entre el numero de en medio
2.- Si son dos los números que están en medio promediar los dos numero y hacer la división del numero entre el promedio.
3.- si el numero de en medio es 0 imprimir el mismo numero
Poniendo ejemplos de cada caso seria algo así>
1. Ingreso 23456, y la impresión en pantalla es la división de 23456 entre 4(cuatro es el numero de en medio.
[23456/4]
2. Ingreso 5694, y la impresión en pantalla es la división de 5694 entre el promedio de 6 y 9
[5694/7.5]
3.Ingreso 3450333,y la impresión en pantalla es el mismo numero(ya que el de en medio es cero)
[3450333]
El caso es que no tengo idea de como (digámoslo así) extraer los números de en medio y efectuar los cálculos ya mencionados, si alguien tiene idea de como le puedo hacer y mejor si me puede dar un ejemplo en código.
PD: No les pido que hagan mi tarea solo algo con lo que empezar porque la verdad no tengo idea de como hacerlo.
Los números del medio, entre el número que ingresas y el número que se muestra en la salida, los puedes ir recorriendo con un bucle, e ir guardando los calculos en una variable auxiliar, por ejemplo:
for( int i= numero que sale ; i < numero que ingresas ; i++ )
//Así estarías recorriendo todos los números desde el que sale hasta el que ingresas, si el que entra es 10 y el que sale es 5 por ejemplo, recorres 5,6,7,8,9, ya las operaciones imagino que sabrás hacerlas con esto que te dije ;)
Saludos
La forma mas sencilla es utilizando un array de caracteres para ahí almacenar cada uno de los dígitos, eso mas calcular su numero lo relegas a la función sprintf.
Un ejemplo del uso de esa funcion:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char digito[33]; /* 33 == ALGUN_VALOR */
int num_digitos;
int numero = 5694;
int i;
num_digitos = sprintf(digito, "%d", numero);
printf("Numero de digitos: %d\n", num_digitos);
for (i = 0; i < num_digitos; i++)
printf("%c\n", digito[i]);
return EXIT_SUCCESS;
}
Por supuesto debes considerar que los dígitos se almacenan como caracteres. Antes de procesarlos debes restarles '0' para en base al carácter obtener el numero:
'0' - '0' == 0
'1' - '0' == 1
'2' - '0' == 2
...
El resto es verificar si el numero de dígitos es par o impar, eso lo realizas mediante el operador de modulo. Finalmente realizas la división con el operador del mismo nombre.
Un saludo