Ввести последовательность чисел без массива и определить номер последнего отрицательного элемента

Проблемы возникшие с решением:

  1. Как остановить данный цикл, при вводе последнего числа последовательности?
  2. Выводится первый отрицательный элемент, а нужен последний.

Подскажите, пожалуйста, как исправить код.

#include <iostream>
int main() {
    int n = 1, x = 0;
    std::cout << "Enter the sequence: ";
    while (std::cin >> x) {
        std::cin >> x;
        if (x >= 0)
            n++;
    }
    std::cout << n;
}

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

Автор решения: Mikhailo
#include <iostream>
using namespace std;
int main() {
    int no = 0, nno = 0, x;
    while (cin >> x) {
        no++;
        if (x < 0) nno = no;
        }
    cout << nno;
    }

Просто считаете все числа, и если отрицательное - перезаписываете его номер.

Прекратить цикл можно или введя Ctrl-Z (в Windows), или введя не число.

→ Ссылка