Программа не работает полностью, код пропускается

Начиная с string str, st = "", sa = ""; код пропускается. Если убрать код выше от string str, st = "", sa = ""; до SetConsoleOutputCP(1251); всё работает отлично. При попытке зациклить программу код также пропускается. Сам код:

#include <string>
#include <cstring>
#include <iterator>
#include <string.h>
#include <map>
#include <Windows.h>

using namespace std;

int main()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

         double array[10];

         cout << "Задание №11: написать пчрограмму, которая вводит с клавиатуры массив из N вещественных чисел, ";
         cout << "находит элемент массива, встречающийся наибольшее количество раз, выводит этот элемент и его ";
         cout << "количество пользователю; затем вводит с клавиатуры строку длиной не более 200 символов, ищет ";
         cout << "в ней самое длинной слово и выводит его пользователю." << endl << endl;

         cout << "Введите элементы массива, используя вещественные числа (10 шт.): " << endl;

         for (int i = 0; i < 10; i++)
             cin >> array[i];
         cout << "Введённые элементы массива: ";

         for (int i = 0; i < 10; i++)

             cout << array[i] << ' ';

         cout << endl;

         int maxcount = 0;
         int element_having_max_freq;

         for (int i = 0; i < 10; i++) {
             int count = 0;
             for (int j = 0; j < 10; j++) {
                 if (array[i] == array[j])
                     count++;
             }
             if (count > maxcount) {
                 maxcount = count;
                 element_having_max_freq = array[i];
             }
         }
         cout << "Элемент массива встречающийся максимальное количество раз: " << element_having_max_freq << endl;
         cout << "Количество данного элемента в массиве: " << maxcount << endl; 
         

        string str, st = "", sa = "";

        cout << "Введите строку длиной не более 200 символов:\n";
        getline(cin, str);
        int k, largest = 0;
        int l = str.length();
        for (k = 0; k < l; k++)
        {
            if (str[k] == ' ')
            {
                if (largest < sa.length())
                {
                    largest = sa.length();
                    st = sa;
                }
                sa = "";
            }
            else
            {
                sa += str[k];
            }
        }
        if (largest < sa.length())
        {
            largest = sa.length();
            st = sa;
        }
        cout << "Самое длинное слово в строке: " << st << "\n" << "Его длина: " << largest << "\n";

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