Код просто застрял на вводе кучи чисел

#c

#c

Вопрос:

Всякий раз, когда программа запускается, и я ввожу два числа (m и n), ничего не происходит, и я могу продолжать вводить числа.

 int main()
{
    vector<int> vec;

    int m, n;

    cin >> m;
    cin >> n;

    for (int i = m; i <= n; i  )
    {
        int sumofnum;
        int num = i;
        while (num)
        {
            sumofnum  = pow(num % 10, 3);
            num / 10;
        }

        if (sumofnum == i)
        {
            vec.push_back(i);
        }
    }

    for (int i = 0; i < vec.size(); i  )
    {
        cout << vec.at(i) << " ";
    }
  

Ответ №1:

 while (num)
{
    sumofnum  = pow(num % 10, 3);
    num / 10;
}
  

циклы навсегда, так как num никогда не изменяется (a) (и предположительно не равен нулю). Вторая строка цикла должна быть:

 num /= 10; // or "num = num / 10".
  

(a) Выражение num / 10 (как и выражение 42 ) совершенно корректно для C в том смысле, что оно вычисляется, а затем выбрасывается.