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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  (Consulta) Ejercicio de Funciones en C - Facil pero no para mi.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Consulta) Ejercicio de Funciones en C - Facil pero no para mi.  (Leído 2,977 veces)
palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
(Consulta) Ejercicio de Funciones en C - Facil pero no para mi.
« en: 22 Julio 2016, 02:06 am »

Hola

Tengo el siguiente ejercicio de funciones.

4) Definir una función que reciba como parámetro un arreglo de enteros (cuyo tamaño se desconoce, termina en 0) y que retorne la longitud promedio de las secuencias de números pares consecutivos.
Ej: En el arreglo a={1, 3, 2, 4, 16, 5, 2, 9, -4, 10, 22, 8, 14, 11, 39, 4, 63, 12, 60, 0};   se encuentran las secuencias (2, 4, 16) de longitud 3, (2) de longitud 1, (-4, 10, 22, 8, 14) de longitud 5, (4) de longitud 1 y (12, 60) de longitud 2.
La función retorna 2.4 que es la longitud promedio de las 5 secuencias de números pares consecutivos (3+1+5+1+2=12/5=2.4)

Les adjunto mi codigo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define N 1000
  5. void CARGA(int arreglo[N]);
  6. double PROMEDIO(int arreglo[N]);
  7. int main()
  8. {
  9.    int arreglo[N];
  10.  
  11.    printf ("Ingrese una secuencia de numeros: \n");
  12.    CARGA(arreglo);
  13.    printf ("El promedio es %.2lf",PROMEDIO(arreglo));
  14.  
  15.  
  16.    return 0;
  17. }
  18.  
  19. void CARGA(int arreglo[N])   ///CARGA DEL ARREGLO
  20. {
  21.    int i=0,numerin;
  22.  
  23.    do
  24.    {
  25.        scanf ("%d",&numerin);
  26.        if (numerin!=0)
  27.        {
  28.            arreglo[i]=numerin;
  29.            i++;
  30.        }
  31.    }
  32.    while (numerin!=0 && i<N);
  33.    arreglo[i]=0;
  34. }
  35. double PROMEDIO(int arreglo[N])
  36. {
  37.    int i=0,suma=0,longitud=0,secuencia=0,bandera=0;
  38.    double promedion=0;
  39.  
  40.    for (i=0;arreglo[i]!=0;i++)
  41.    {
  42.        if (arreglo[i]%2==0)   ///SI ES PAR
  43.        {
  44.            longitud++;        ///LONGITUD DE LA SECUENCIA
  45.  
  46.            if (bandera==0)
  47.            {
  48.                secuencia++;  
  49.                bandera=1;
  50.            }
  51.        }
  52.        else       ///SI NO ES PAR
  53.        {
  54.            bandera=0;
  55.            suma=suma+longitud;
  56.            longitud=0;
  57.        }
  58.    }
  59.  
  60.    printf ("\nLa suma es %d",suma);
  61.    printf ("\nEl numero de secuencias es %d",secuencia);
  62.    promedion=(double)suma/secuencia;
  63.    return promedion;
  64. }
  65.  
  66.  
  67.  


En teoria me tendria que dar 2.4 pero me da 2.0
Evalue que habia en la variable suma y habia 10 en vez de haber 12.
El numero de secuencias por lo que veo, lo calcule bien ya que dio el mismo : 5.
Entonces de alguna forma algo le estoy pifiando con la variable suma=suma+longitud que no me calcula bien, pero no se que es. Alguna idea?.Gracias de antemano


« Última modificación: 22 Julio 2016, 02:29 am por palacio29 » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: (Consulta) Ejercicio de Funciones en C - Facil pero no para mi.
« Respuesta #1 en: 22 Julio 2016, 02:21 am »

Hola, edita tu tema y vuelve a pegar tu codigo pero ahora dentrode la etiqueta llamada geshi seleecionas lenguaje C claro.

Ya que se lee mal asi, ademas si te fijas los indices de los arreglos (Los que estan entre corchetes) se perdieron

Saludos


En línea

palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Re: (Consulta) Ejercicio de Funciones en C - Facil pero no para mi.
« Respuesta #2 en: 22 Julio 2016, 02:29 am »

Hola, edita tu tema y vuelve a pegar tu codigo pero ahora dentrode la etiqueta llamada geshi seleecionas lenguaje C claro.

Ya que se lee mal asi, ademas si te fijas los indices de los arreglos (Los que estan entre corchetes) se perdieron

Saludos

Hola, ahi ya lo modifique
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: (Consulta) Ejercicio de Funciones en C - Facil pero no para mi.
« Respuesta #3 en: 22 Julio 2016, 02:51 am »

Código
  1. promedion=((double)suma)/((double)secuencia);

Creo que es eso
En línea

palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Re: (Consulta) Ejercicio de Funciones en C - Facil pero no para mi.
« Respuesta #4 en: 22 Julio 2016, 03:20 am »

Código
  1. promedion=((double)suma)/((double)secuencia);

Creo que es eso

Hola, lo probe pero sigue igual. Igualmente el problema es con la variable suma, deberia dar 12 y me da 10. Por eso al calcular el promedio no es el mismo 10/5=2.00. y deberia ser 12/5=2.4
En línea

palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Re: (Consulta) Ejercicio de Funciones en C - Facil pero no para mi.
« Respuesta #5 en: 22 Julio 2016, 06:50 am »

Hola, lo probe pero sigue igual. Igualmente el problema es con la variable suma, deberia dar 12 y me da 10. Por eso al calcular el promedio no es el mismo 10/5=2.00. y deberia ser 12/5=2.4

Hola, ya lo solucione!!!. En el ejemplo la secuencia al final de todo es par y justo viene el 0 que es el fin del arreglo, entonces no pasaba la secuencia final en la variable suma.
Igualmente gracias,siempre me estas dando una mano.!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda facil pero dificil para mi =(
Programación Visual Basic
visualfree 5 1,912 Último mensaje 25 Octubre 2006, 07:19 am
por MORFEO_2
[Consulta] Prototipos de funciones para include.
ASM
The Swash 3 3,808 Último mensaje 3 Junio 2012, 06:20 am
por The Swash
Ejercicio con funciones(Resuelto)
PHP
Maistere 4 2,350 Último mensaje 23 Octubre 2013, 12:29 pm
por Maistere
Problema con ejercicio facil en c
Programación C/C++
maxik23 2 1,791 Último mensaje 4 Abril 2015, 03:57 am
por maxik23
Problema en ejercicio con funciones
Programación C/C++
darkeado 4 2,340 Último mensaje 9 Agosto 2015, 23:02 pm
por darkeado
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines