• Martes 12 de Noviembre de 2024, 21:12

Autor Tema:  Duda De Funciones  (Leído 1423 veces)

acf00005

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Duda De Funciones
« en: Sábado 20 de Enero de 2007, 19:25 »
0
Me gustaria saber como se haria para llamar a la funcion secundaria "media" desde la funcion principal y tb si dicha funcion "media" esta bien realizada .Agradeceria mucho su ayuda y que me diesen su respuesta al correo electronico rd_ocelot@hotmail.com

NOTA:El switch lo he puesto para hacer un menu con mas opciones despues.

/*******************************************************************************
 * Esta función calcula la media de los minutos jugados de todos los
 * jugadores por partido.
******************************************************************************/

float media(float tiempoJugado[12][10],int f,int c){
         
          float media;
          float suma;
          int i;
          int j;
         
          for(i=0; i<=f-1; i=i+1){
                 for(j=0; j<=c-1; j=j+1){
                          suma=suma+tiempoJugado[12][10];
                          }
                 }
         
          media= suma /(12*10);
         
           
}

int main(int argc, char *argv[])
{
    float tiempoJugado[12][10] =
      {{5.55, 16.8, 17.8, 7.95, 23.8, 19.6, 3.83, 24.9, 5.31, 37.4},
       {4.45, 23.1, 7.59, 38.0, 8.37, 24.1, 2.35, 20.5, 15.6, 27.2},
       {7.64, 6.31, 14.6, 14.7, 16.8, 6.50, 13.0, 14.8, 38.8, 20.7},
       {7.12, 13.9, 16.1, 19.7, 16.9, 2.13, 6.61, 27.0, 27.6, 8.90},
       {38.9, 1.86, 22.9, 0.491, 20.7, 27.2, 6.31, 20.1, 32.1, 15.5},
       {17.5, 39.6, 32.8, 3.10, 21.6, 5.21, 29.9, 3.20, 31.7, 37.9},
       {29.1, 22.5, 13.4, 17.7, 23.0, 13.4, 5.37, 37.9, 37.8, 30.6},
       {1.42, 20.1, 22.1, 28.9, 28.6, 15.0, 34.8, 28.5, 39.8, 37.7},
       {31.5, 1.28, 7.30, 31.0, 35.7, 1.51, 28.5, 24.1, 5.90, 37.5},
       {19.7, 35.2, 29.2, 6.96, 20.6, 22.0, 8.83, 19.4, 6.20, 13.9},
       {32.2, 13.0, 15.5, 22.3, 15.3, 38.0, 9.63, 33.3, 21.5, 36.3},
       {17.7, 29.5, 4.04, 18.2, 17.8, 1.16, 10.7, 39.4, 0.613, 30.5}};
 
   /****************************************************************************
   * Llamar a la funcion anteriormente implementada de una forma coherente
   ****************************************************************************/


int c  ;

printf("\nEscoja la opcion que desea:") ;
printf("\n       a - La media de tiempo jugado del equipo.") ;
printf("\n\nESCRIBA SU SELECCION , Y LUEGO <<ENTER>> : ") ;
c = getchar() ;

switch ©
 {
  case 'a' :
    printf("\nLa media de tiempo jugado del equipo es: %f\n\n",media) ;
    break ;}
 
  system("PAUSE");   
  return 0;
}

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Duda De Funciones
« Respuesta #1 en: Sábado 20 de Enero de 2007, 20:38 »
0
¿Enviarlo por correo?  :angry:
Para eso está el foro  :)

Deberías poner el código entre las etiquetas [C ODE] y [/C ODE] (sin el espacio)

Tenés varios errores, ¿Lo escribiste vos?

En fin...

Código: Text
  1. #include &#60;conio.h&#62;
  2. #include &#60;stdio.h&#62;
  3.  
  4. /*******************************************************************************
  5. * Esta función calcula la media de los minutos jugados de todos los
  6. * jugadores por partido.
  7. ******************************************************************************/
  8.  
  9. float media(float tiempoJugado[12][10]){
  10.   float media;
  11.   float suma;
  12.   int i;
  13.   int j;
  14.  
  15.   for(i=0; i&#60;12; i++){
  16.     for(j=0; j&#60;10; j++){
  17.       suma=suma+tiempoJugado[i][j];
  18.     }
  19.   }
  20.  
  21.   return suma /(12*10);
  22.  
  23. }
  24.  
  25. int main(int argc, char *argv[]){
  26.   clrscr();
  27.   float tiempoJugado[12][10] =
  28.     {
  29.     {5.55, 16.8, 17.8, 7.95, 23.8, 19.6, 3.83, 24.9, 5.31, 37.4},
  30.     {4.45, 23.1, 7.59, 38.0, 8.37, 24.1, 2.35, 20.5, 15.6, 27.2},
  31.     {7.64, 6.31, 14.6, 14.7, 16.8, 6.50, 13.0, 14.8, 38.8, 20.7},
  32.     {7.12, 13.9, 16.1, 19.7, 16.9, 2.13, 6.61, 27.0, 27.6, 8.90},
  33.     {38.9, 1.86, 22.9, 0.491, 20.7, 27.2, 6.31, 20.1, 32.1, 15.5},
  34.     {17.5, 39.6, 32.8, 3.10, 21.6, 5.21, 29.9, 3.20, 31.7, 37.9},
  35.     {29.1, 22.5, 13.4, 17.7, 23.0, 13.4, 5.37, 37.9, 37.8, 30.6},
  36.     {1.42, 20.1, 22.1, 28.9, 28.6, 15.0, 34.8, 28.5, 39.8, 37.7},
  37.     {31.5, 1.28, 7.30, 31.0, 35.7, 1.51, 28.5, 24.1, 5.90, 37.5},
  38.     {19.7, 35.2, 29.2, 6.96, 20.6, 22.0, 8.83, 19.4, 6.20, 13.9},
  39.     {32.2, 13.0, 15.5, 22.3, 15.3, 38.0, 9.63, 33.3, 21.5, 36.3},
  40.     {17.7, 29.5, 4.04, 18.2, 17.8, 1.16, 10.7, 39.4, 0.613, 30.5}
  41.     };
  42.  
  43.     int c;
  44.  
  45.     printf(&#34;&#092;nEscoja la opcion que desea:&#34;);
  46.     printf(&#34;&#092;n a - La media de tiempo jugado del equipo.&#34;);
  47.     printf(&#34;&#092;n&#092;nESCRIBA SU SELECCION , Y LUEGO &#60;&#60;ENTER&#62;&#62; : &#34;);
  48.     c = getchar();
  49.     switch(c) {
  50.       case 'a':
  51.         printf(&#34;&#092;nLa media de tiempo jugado del equipo es: %f&#092;n&#092;n&#34;,media(tiempoJugado));
  52.       break;
  53.     }
  54.     getch();;
  55.     return 0;
  56. }
  57.  

Revisalo.-

 :beer:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

acf00005

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Duda De Funciones
« Respuesta #2 en: Sábado 20 de Enero de 2007, 21:29 »
0
Si lo he escrito yo,pero me parece q el resultado no puede ser ese,sale demasiado no crees?

Me parece que tiene q haber algo mal al hacer la suma de todos los valores del array.


Escoja la opcion que desea:
       a - La media de tiempo jugado del equipo.
       b - La media de tiempo jugado por un jugador en concreto.
       c - Jugador que tiene la media de tiempo mas alta.

ESCRIBA SU SELECCION , Y LUEGO <<ENTER>> : a

La media de tiempo jugado del equipo es: 65214289255208060000000000000000.000000


Presione una tecla para continuar . . .

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Duda De Funciones
« Respuesta #3 en: Domingo 21 de Enero de 2007, 18:57 »
0
Inicializa la variable suma, al declararla:
Código: Text
  1.  
  2. float suma = 0;
  3.  
  4.  
o antes de los ciclos donde realizas la suma.

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Duda De Funciones
« Respuesta #4 en: Domingo 21 de Enero de 2007, 19:49 »
0
Cita de: "Geo"
Inicializa la variable suma, al declararla:
Código: Text
  1.  
  2. float suma = 0;
  3.  
  4.  
o antes de los ciclos donde realizas la suma.

Saludos,
JJ (Geo).
El error tiene que ser otro , por mas que no la inicialize tomará el valor 0 en su definición.- (Aunque exista la pequeña y remota posibilidad de que algún día el valor de  NULL sea otro  :devil: ; no empiecen con eso  :ph34r: ).-

El código que le dí me funciona perfecto.-

Es cierto que debe inicializar la variable si va a realizar varias operaciones con la misma. Pero para el primer caso no hace falta.

Además, el número que le está resultando me parece que  &lt;_&lt;
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Duda De Funciones
« Respuesta #5 en: Domingo 21 de Enero de 2007, 20:10 »
0
Tiene razon Geo; En esta linea suma es un valor totalmente indefinido y se usa:

Código: Text
  1.  
  2. suma=suma+tiempoJugado[i][j];
  3.  
  4.  

Cita de: "Angel_K_ido"
El error tiene que ser otro , por mas que no la inicialize tomará el valor 0 en su definición.

Eso no es asi.

Cita de: "Angel_K_ido"
Es cierto que debe inicializar la variable si va a realizar varias operaciones con la misma. Pero para el primer caso no hace falta.

¿Que?

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

acf00005

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Duda De Funciones
« Respuesta #6 en: Domingo 21 de Enero de 2007, 20:19 »
0
GRACIAS,ya esta solucionado pero no he podido entrar ants en el foro para comentarlo.

Habia q incializar suma=0; :D