C/Visual C - paso de dato flotante a entero?

 
Vista:

paso de dato flotante a entero?

Publicado por david (1 intervención) el 11/08/2005 11:35:28
hola, tengo un problema que no se como resolverlo de forma elegante. tengo una serie de datos flotantes(6 cifras decimales) y de ellos tengo que encontrar el maximo. utilizo como compilador turbo C de MSDOS (me estoy iniciando en la programacion) y para hallar el máximo dispongo de la funcion max (a,b), pero esta funcion unicamente permite utilizar datos de tipo entero,es decir a y b tienen que ser enteros, qué hago?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:paso de dato flotante a entero?

Publicado por fernando.gomez (1603 intervenciones) el 11/08/2005 16:29:02
Una solución no elegante sería usar una macro:

#define MAX(x,y) x > y ? x : y

Otra solución es que te crees una función --digamos-- fmax que tome variables float:

float fmax(float f1, float f2)
{
return f1 > f2? f1 : f2;
}

Si trabajas con C++, entonces el resultado sería sumamente elegante y práctico:

template<class T>
T max(T t1, T t2)
{
return t1 > t2 ? t1 : t2;
}

y las siguientes sentencias son correctas:

int i = 5, j = 6;
cout << max(i, j) << endl;

float f = 10.2, g = 45.432;
cout << max(f, g) << endl;

char c = 'A', d = 'D';
cout << max(c, d) << endl;

y en resumen, cualquier clase o estructura con el operador > sobrecargado funcionaría. En fin, eventualmente no cuesta nada hacer el macro o la función...

Saludos.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar