Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: prmrdark en 22 Octubre 2011, 09:51 am



Título: Necesito ayuda para hacer (comenzar) un programa en C
Publicado por: prmrdark en 22 Octubre 2011, 09:51 am
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.


Título: Re: Necesito ayuda para hacer (comenzar) un programa en C
Publicado por: darkvidhack en 22 Octubre 2011, 10:18 am
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:


Código
  1. 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


Título: Re: Necesito ayuda para hacer (comenzar) un programa en C
Publicado por: rir3760 en 22 Octubre 2011, 15:25 pm
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:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.    char digito[33]; /* 33 == ALGUN_VALOR */
  7.    int num_digitos;
  8.    int numero = 5694;
  9.    int i;
  10.  
  11.    num_digitos = sprintf(digito, "%d", numero);
  12.  
  13.    printf("Numero de digitos: %d\n", num_digitos);
  14.    for (i = 0; i < num_digitos; i++)
  15.        printf("%c\n", digito[i]);
  16.  
  17.    return EXIT_SUCCESS;
  18. }
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:
Código:
'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