C++ , Вводятся числа до тех пор, пока не будет введён 0, найти самое большое отрицательное число

не понимаю, что не так Вводимые числа могут быть как отрицательные так и положительные вводные данные : 5 3 4 -2 -3 0 вывод: -2 вводные данные : -2 -3 2 5 7 0 вывод: -2

double num, max;
 cin >> num;
 max = num;
 while (num != 0) {
     if (max < num || (max >= 0 && num < 0)) {
         max = num;
        
     }
     cin >> num;
 }
     if (max >= 0) { cout << "ne to tz"<<" "<<max; }
     else cout << max;
}

Ответы (1 шт):

Автор решения: Harry
double max = 0;
max = 0;
for(double num; cin >> num && num != 0;)
{
    if (num > 0) continue;
    if (max < num || max == 0) max = num;
}

if (max >= 0) { cout << "ne to tz"<<" "<<max; }
else cout << max;
→ Ссылка