Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/11/2012, 06:48
Avatar de rodrigoemece
rodrigoemece
 
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Problema en el cálculo del mínimo de un fichero

Así me funciona el máximo pero no el mínimo, pero no entiendo por qué :S (Cambios en líneas 23 y 26)

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define LNX 99999
  4.  
  5. float mx=0, mn=0, me=0;
  6.  
  7. float max(float);
  8. float min(float);
  9. float med(float,int,int);
  10.  
  11. main(){
  12. int v[LNX], i=0, z=1;
  13. float ma=0, mi=0, md=0;
  14.  
  15. FILE *fp;
  16. fp = fopen("doc.txt","rt");
  17. if(fp==NULL){
  18.     printf("Erro na apertura do arquivo.\n");
  19.     exit(1);
  20. }
  21.  
  22. else{
  23. mx=v[0];
  24.  do{
  25.    fscanf(fp,"%d",&v[i]);
  26.    mn=v[0];
  27.  
  28.    if (feof(fp)!=0 || i>=LNX) z=i+1;
  29.    ma=max(v[i]);
  30.    mi=min(v[i]);
  31.    md=med(v[i],i,z);
  32.    i++;  
  33.     }while(feof(fp)==0 && i<LNX);
  34.          
  35.     printf("O maximo do arquivo e: %f\n", ma);
  36.     printf("O minimo do arquivo e: %f\n", mi);
  37.     printf("A media do arquivo e: %f\n", md);
  38.      }
  39.   fclose(fp);
  40.       }
  41.  
  42.  
  43. float max(float vec)
  44. {
  45.     if (vec>mx) mx = vec;              
  46.     return mx;
  47. }
  48.  
  49. float min(float vec)
  50. {
  51.     if (vec<mn) mn = vec;              
  52.     return mn;    
  53. }
  54.  
  55. float med(float vec, int a, int x)
  56. {
  57.     me = (me + vec)/x;
  58.     return me;
  59. }

Última edición por rodrigoemece; 07/11/2012 a las 07:16