elgio
(usa OpenSuSE)
Enviado em 19/05/2008 - 09:27h
sancler: o VOL, infelizmente, suprime as identações de tudo que for postado. :-(
Tu precisa, como já foi dito, usar float para retorno. Eu usaria double, pois tem maior precisão (float tem apenas 4 bytes!!)
Mas ainda, CUIDADO com as divisões. Seria um erro uma função deste tipo:
double media (int x, int y)
{
double m;
m = (x+y) / 2;
return(m);
}
int main()
{
double m1;
m1 = media(10, 3);
}
No caso m1 tera apenas 6 e não 6.5!!
Qual o problema?
Divisão de dois inteiros resulta sempre em dois inteiros (veja meu artigo sobre floats).
Solução: (uma delas)
double media (int x, int y)
{
double m;
m = (x+y);
m = m / 2;
return(m);
}
Simples, mas agora ao dividir por 2, m é double. Antes tinha x+x (int) divide por 2 (outro int), resposta int...