Программа не работает полностью, код пропускается
Начиная с 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";