Necesito ayuda para hacer (comenzar) un programa en C

Iniciado por prmrdark, 22 Octubre 2011, 09:51 AM

0 Miembros y 1 Visitante están viendo este tema.

prmrdark

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.

darkvidhack

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 (cpp) [Seleccionar]
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
live and let die

la duda es la base de todo conocimiento

rir3760

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
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