• Viernes 19 de Abril de 2024, 12:17

Autor Tema:  no entiendo una cosilla  (Leído 923 veces)

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
no entiendo una cosilla
« en: Miércoles 1 de Octubre de 2008, 06:37 »
0
Código: Text
  1. float promedio(float numeros[MAX])
  2. {
  3.     int i;
  4.     float sum=0,prom;
  5.     for(i=0;i<MAX;i++)
  6.     sum=sum+numeros[i];
  7.    
  8.     prom=sum/MAX;
  9.    
  10.     return prom;
  11. }
  12.  
  13.  
  14. int main()
  15. {
  16.     int i;
  17.     float n[MAX];
  18.     float x;
  19.    
  20.     for(i=0;i<MAX;i++){
  21.     printf("nnumero %i:",i+1);
  22.     scanf("%f",&n[i]);
  23.                       }
  24.                      
  25.     x=promedio(n);   < --------------------------|||| Esta n
  26.    
  27.     printf("n El promedio de los numeros es: %.1f",x);
  28.    
  29.     system("pause");
  30. }
  31.  

hola, estoy revisando unos ejercicios que nos paso el ayudante de mi profe, y no entiendo que hace la "n" 1 (x=promedio(n) ) , me he dado cuenta que si la saco no funciona el programa, pero no se que funcion cumple.

ojala me expliquen  :good:


saludos

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: no entiendo una cosilla
« Respuesta #1 en: Miércoles 1 de Octubre de 2008, 09:29 »
0
No sé qué es lo que no entiendes exactamente, porque x=promedio(n); es lo que hace lo más importante en tu programa  :o . Lo voy a comentar a ver si así lo ves más claro:

Código: C
  1.  
  2.  int main()
  3.  {
  4.      int i;
  5.      float n[MAX];
  6.      float x;
  7.  
  8.  

Declaraciones: entero i, vector de reales n con MAX elementos (de 0 a MAX-1) y real x.

Código: C
  1.    
  2.      for(i=0;i<MAX;i++){
  3.      printf("nnumero %i:",i+1);
  4.      scanf("%f",&n[i]);
  5.                        }
  6.  
  7.  

Leemos los MAX elementos (desde 0 a MAX-1, por eso < y no <=) de n, desde el teclado

Código: C
  1.                      
  2.      x=promedio(n);
  3.  
  4.  

Llamamos a la función promedio() pasándole como parámetro el puntero n (recuerdo que los vectores en C son punteros). Vamos a la función promedio().

Código: C
  1.  
  2.  float promedio(float numeros[MAX])
  3.  
  4.  

Vemos en la declaración de promedio() que devuelve un real (x en main()) y acepta un vector de MAX elementos reales (n en main()).

Código: C
  1.  
  2.      for(i=0;i<MAX;i++)
  3.          sum=sum+numeros[i];
  4.  
  5.  

Suma todos los números del vector, guardando el resultado en la variable local sum.

Código: C
  1.    
  2.      prom=sum/MAX;
  3.  
  4.  

Calculamos el promedio (o media) dividiendo la suma entre el número de elementos del vector (constante MAX).

Código: C
  1.    
  2.      return prom;
  3.  
  4.  

Devolvemos el promedio (se podría haber puesto directamente return(sum/MAX);). Volvemos a main, en la línea:

Código: C
  1.                      
  2.      x=promedio(n);
  3.  
  4.  

Ahora x tiene la media del vector n, calculada como hemos visto en promedio().

Código: C
  1.  
  2.      printf("n El promedio de los numeros es: %.1f",x);
  3.  
  4.  

Se imprime por pantalla x como real con un decimal (%.1f).

Código: C
  1.  
  2.      system("pause");
  3.  
  4.  

Pausamos.

Espero haberte aclarado algo. Un saludo.

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: no entiendo una cosilla
« Respuesta #2 en: Miércoles 1 de Octubre de 2008, 20:10 »
0
cosilla aclarada  :good:  :good:  :good:  :good:

gracias