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#include<iostream>
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
using namespace std;
float media_vector (int vector [], int n)
{
int suma=0;
for (int i=0; i<n; i++)
suma=suma+i;
return suma/n;
}
float desviacion_tipica_vector (int vector [], int n)
{
float suma=0;
for (int i=0; i<n; i++)
suma=suma+((vector[i]-media_vector(vector, n))*(vector[i]-media_vector(vector, n)));
}
float desviacion_media_vector (int vector [], int n)
{
float suma=0;
for (int i=0; i<n; i++)
suma
=suma
+abs(vector
[i
]-media_vector
(vector
, n
)); return suma/n;
}
void escribe_vector (int vector[], int n) //funcion que escribe un vector
{ //en filas de 10 elementos
for (int i=0; i<n; i++)
{
cout<<vector[i]<<'\t';
if (!((i+1)%10)) cout <<endl;
}
}
int main()
{
int vector [n];
for (int i=0; i<n; i++)
cout <<"El vector generado es: "<<endl;
escribe_vector (vector, n);
cout<<endl;
cout <<"La media es: "<<media_vector(vector, n)<<endl;
cout <<"La desviacion media es: "<<desviacion_media_vector(vector, n)<<endl;
cout <<"La desviacion tipica es: "<<desviacion_tipica_vector(vector, n)<<endl;
return EXIT_SUCCESS;
}
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 :)