elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Necesito ayuda para hacer (comenzar) un programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito ayuda para hacer (comenzar) un programa en C  (Leído 2,223 veces)
prmrdark

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Necesito ayuda para hacer (comenzar) un programa en C
« 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.


En línea

darkvidhack

Desconectado Desconectado

Mensajes: 159


Be Linux my friend...


Ver Perfil WWW
Re: Necesito ayuda para hacer (comenzar) un programa en C
« Respuesta #1 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


En línea

live and let die

la duda es la base de todo conocimiento
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Necesito ayuda para hacer (comenzar) un programa en C
« Respuesta #2 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
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines