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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  se puede comparar función dentro de otra función?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: se puede comparar función dentro de otra función?  (Leído 2,973 veces)
omegadei

Desconectado Desconectado

Mensajes: 4


Ver Perfil
se puede comparar función dentro de otra función?
« en: 21 Marzo 2018, 20:10 pm »

Hola, soy estudiante a nivel principiante de programación y estamos viendo   funciones y punteros lo cual empiezo a entender bien, sin embargo tengo una duda al momento de crear una funcion que me indique las temp mayores al promedio y las imprima, mi codigo es este  y el problema esta en la
Código
  1. funcion mayorespromedios()
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include <stdlib.h>
  5. #define tamano 8
  6. #define numsem 7
  7. void leerclima(float *);
  8. void  escribirpromedio( float *);
  9. void mayorespromedio(float*);
  10.  
  11.  const  char *sem[]= {"  ", "Lunes: ", "Martes: ", "Miercoles: ", "Jueves: ", "Viernes: ", "Sabado: ", "Domingo: "};
  12. char TEM=tamano;
  13.  
  14.  
  15. int main (int arg, char*argv[])
  16.  
  17. {
  18. float clima [TEM];
  19. leerclima(clima);
  20. escribirpromedio(clima);
  21. mayorespromedio(clima);
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. }
  29.  
  30. void leerclima(float *clima)
  31. {
  32.  
  33.  
  34. printf(" Ingrese la temperatura   : \n");
  35.  
  36. for (register unsigned char dia = 1; dia < TEM ; dia++)
  37. {
  38. printf("%s", sem[dia]);
  39. scanf("%f", (clima+dia));
  40. fflush(stdin);
  41. }
  42. }
  43.  
  44.  
  45. void  escribirpromedio( float *clima)
  46. {
  47. for( register unsigned char dia = 1; dia<TEM ; dia++ )
  48. {
  49.  
  50. *(clima)+=*(clima+dia);
  51.  
  52. }
  53. printf("\n\n El Promedio de clima de la semana es : %.2f\n",*clima/numsem);
  54. }
  55. void mayorespromedio(float*clima)
  56. {
  57.  
  58. escribirpromedio(clima);
  59. //float prom2= escribirpromedio(clima); aqui me marca error void mayorespromedios(float*)
  60. for ( register unsigned char dia = 1 ; dia<TEM ; dia++ )
  61.  
  62.  
  63.  
  64. if (*clima >prom2)
  65.  
  66. printf ("     dias que pasan el promedio %s:",sem[dia]);
  67.  
  68. }
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75. //}
  76.  
  77.  
  78.  
  79.  

· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 21 Marzo 2018, 20:16 pm por engel lex » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: se puede comparar función dentro de otra función?
« Respuesta #1 en: 21 Marzo 2018, 20:46 pm »

Es importante leer los mensajes del compilador:
error: 'prom2' undeclared (first use in this function)

Quiere decir que no sabe que es prom2.


En línea

omegadei

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: se puede comparar función dentro de otra función?
« Respuesta #2 en: 21 Marzo 2018, 22:04 pm »

el prom2 lo puso despues de //, el compilador no lo considera
En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: se puede comparar función dentro de otra función?
« Respuesta #3 en: 21 Marzo 2018, 22:10 pm »

es porque lo estas igualando a una función que no retorna nada por eso te marca error
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: se puede comparar función dentro de otra función?
« Respuesta #4 en: 21 Marzo 2018, 23:09 pm »

Cierto, mea culpa.

Pues ya que el primer elemento de clima guarda la suma de todos los días, basta hacer que promedio valga *clima/numsem.
En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: se puede comparar función dentro de otra función?
« Respuesta #5 en: 21 Marzo 2018, 23:26 pm »

el problema esta en que después quiere comparar que días están por encima del promedio y como sobre escribió el dato del primer día entonces ya no hay forma de saber que valor tenia te recomiendo hacer una función que retorne un float donde calcule el promedio de los datos que hay en clima para no modificar estos
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: se puede comparar función dentro de otra función?
« Respuesta #6 en: 21 Marzo 2018, 23:40 pm »

Basta con que sea así:
Código
  1. void mayorespromedio(float*clima) {
  2.    float prom2= *clima/numsem;
  3.    for(register unsigned char dia = 1 ; dia<TEM ; dia++ )
  4.        if (clima[dia] >prom2)
  5.            printf ("     dias que pasan el promedio %s\n:",sem[dia]);
  6. }

Aparte usar una instrucción void para cargar prom2, que se puede cambiar por *clima/numsem, también repetía dos veces escribirpromedio, una en main y la otra en mayorespromedio, lo que hacía que la segunda vez se duplicara todo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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