Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2012, 12:59
antonio715
 
Fecha de Ingreso: agosto-2012
Ubicación: Alcalá
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 0
Valor absoluto de un float

Buenas, la duda es si se puede hacer el valor absoluto de un float con la función abs () o hay que usar otra función.

El caso es que tengo un programita:

Código C++:
Ver original
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. #include <time.h>
  6.  
  7. using namespace std;
  8.  
  9. float media_vector (int vector [], int n)
  10. {
  11.      int suma=0;
  12.      for (int i=0; i<n; i++)
  13.          suma=suma+i;        
  14.      return suma/n;                
  15. }
  16.  
  17. float desviacion_tipica_vector (int vector [], int n)
  18. {
  19.       float suma=0;
  20.       for (int i=0; i<n; i++)
  21.           suma=suma+((vector[i]-media_vector(vector, n))*(vector[i]-media_vector(vector, n)));
  22.       return sqrt(suma/n);  
  23. }
  24.  
  25. float desviacion_media_vector (int vector [], int n)
  26. {
  27.     float suma=0;
  28.     for (int i=0; i<n; i++)
  29.         suma=suma+abs(vector[i]-media_vector(vector, n));
  30.     return suma/n;
  31. }
  32.  
  33.  
  34.  
  35. void escribe_vector (int vector[], int n)  //funcion que escribe un vector
  36. {                                         //en filas de 10 elementos
  37.  for (int i=0; i<n; i++)
  38.      {
  39.      cout<<vector[i]<<'\t';
  40.      if (!((i+1)%10)) cout <<endl;
  41.      }
  42. }
  43.  
  44.            
  45. int main()
  46. {
  47.     srand(time(NULL));
  48.     int n=(rand()%10);
  49.     int vector [n];
  50.     for (int i=0; i<n; i++)
  51.         vector [i]=(rand()%100);
  52.     cout <<"El vector generado es: "<<endl;
  53.     escribe_vector (vector, n);
  54.     cout<<endl;
  55.     cout <<"La media es: "<<media_vector(vector, n)<<endl;
  56.     cout <<"La desviacion media es: "<<desviacion_media_vector(vector, n)<<endl;
  57.     cout <<"La desviacion tipica es: "<<desviacion_tipica_vector(vector, n)<<endl;
  58.    
  59.     system("PAUSE");
  60.     return EXIT_SUCCESS;
  61.  
  62. }
que me da el siguiente error en la línea 29: call of overloaded `abs(float)' is ambiguous

y no sé cómo solucionarlo..

Gracias :)