Hay una serie de mejoras que se pueden hacer.
Usted podría utilizar las funciones estándar para hacerlo más claro:
// Notice I made the return type an int instead of a float,
// since you're passing in ints
int smallest(int x, int y, int z){
return std::min(std::min(x, y), z);
}
O mejor aún, como se ha señalado en los comentarios:
int smallest(int x, int y, int z){
return std::min({x, y, z});
}
Si desea que le permite operar en cualquier número de enteros , podría hacer algo como esto:
int smallest(const std::vector<int>& intvec){
int smallest = std::numeric_limits<int>::max(); // Largest possible integer
// there are a number of ways to structure this loop, this is just one
for (int i = 0; i < intvec.size(); ++i)
{
smallest = std::min(smallest, intvec[i]);
}
return smallest;
}
También podría hacerlo genérico para que funcione e en cualquier tipo, en lugar de sólo ints
template <typename T>
T smallest(const std::vector<T>& vec){
T smallest = std::numeric_limits<T>::max(); // Largest possible integer
// there are a number of ways to structure this loop, this is just one
for (int i = 0; i < vec.size(); ++i)
{
smallest = std::min(smallest, vec[i]);
}
return smallest;
}
jaja ¿y si ninguno de los valores son menores que 99999? decir ah. – L7ColWinters
@jogojapan o mejor que comenzar con 'INT_MAX' (or'std :: numeric_limits :: max()' solo comience con el primer número ... –
No estoy seguro de que sea una buena idea cerrar esto debido a el contexto de C++. Me gustaría ver la discusión genérica en el duplicado citado, y también me gustaría ver la discusión de C++ con plantillas y programación de metadatos, y la discusión de C++ 11 con 'constexpr'. una mejor dup, a pesar de que es 'max' en lugar de' min': [La forma más eficiente de encontrar la mayor de tres ints] (http://stackoverflow.com/q/2233166/608639). Se ve mejor porque es C++ específico. Pero carece de un buen tratamiento de plantillas, metaprogramación y 'constexpr'. – jww