#include #include #include #include #include using namespace std; int main(void) { int closestToZero; int n; // the number of temperatures to analyse cin >> n; cin.ignore(); std::vector temperatures(n); for (std::size_t i = 0; i < n; i++) { int t; // a temperature expressed as an integer ranging from -273 to 5526 cin >> t; cin.ignore(); temperatures[i] = t; } try { closestToZero = temperatures.at(0); // store first value; if empty, we are meant to display “0” } catch (std::out_of_range) { cerr << "“First” temperature can’t be stored. Store 0." << endl; closestToZero = 0; } std::for_each(std::cbegin(temperatures), std::cend(temperatures), [&](int const elem) -> void { cerr << "{ elem: " << elem << ", closestToZero: " << closestToZero << " }"; if (abs(elem) < abs(closestToZero)) { closestToZero = elem; } else if (-elem == closestToZero) { closestToZero = elem > closestToZero ? elem : closestToZero; // edge case, i.e. if -5 and 5, take positive value } cerr << " -> " << closestToZero << endl; }); cout << closestToZero << endl; }