Написать на языке С++ Ввести строку символов. Подсчитать наибольшее количество точек идущих подряд (реализовать через функцию). Вывести на экран результат вычисления.
#include #include using namespace std; unsigned dotsConuter(const string &s) { unsigned i, j, max = 0; for (i = 0; i < s.length(); ++i) { if (s[i] == '.') { for (j = 1; ((i + j) < s.length()) && (s[i + j] == '.'); ++j); max = (max < j) ? j : max; } } return max; } int main() { string str("dots.. more dots....."); cout << dotsConuter(str) << endl;<br>return 0; }
вообще стиль зависит от проекта в котором работаешь, как и ваш стиль йоды, это была тупая защита от "дураков", давно его юзали, хотя кто-то и сейчас юзает, мне это не нравится, сейчас все современные IDE предупреждают если вместо == было = )
Это какие к примеру, в студии или Qt напиши что-то типа: int a; int b; if (a = b) //ругаться не будет, в лучшем случаи кинет варнинг {...}
#include //библиотека ввода/вывода #include //библиотека с типом данных string, для работы со строками using namespace std; //пространство имен, тут названия всех типов данных дополнительных (в нашем случаи string) //а так же функций из iostream const char DOT_SIMBOL = '.'; //константа с которой будем сравнивать, является ли символ точкой
//----------------------------------------------------------------------------- int getMaxDotCountInARow(const string& str) //----------------------------------------------------------------------------- { int dotCounter; //счётчик точек int maxDotLine; //тут будем хранить максимальное кол-во стоящих под ряд точек dotCounter = 0; //обнуляем значения переменных maxDotLine = 0;
for (const char& simbol : str) //цикл по всем елементам строки { if (DOT_SIMBOL == simbol) //если символ является точкой { ++dotCounter; //счётчик точек увеличить на 1 } else //иначе, если любой другой символ { if (dotCounter > maxDotLine) //если максимальное кол-во точек меньше чем на счётчике { maxDotLine = dotCounter; //запомнить новое максимальное кол-во точек } dotCounter = 0; //обнулить счётчек } }
if (dotCounter > maxDotLine) //ещё раз проверяем, если строка закончилась { maxDotLine = dotCounter; } return maxDotLine; //возращаем максимальное кол-во точек } //точка входа в программу, либо основная функция программы //----------------------------------------------------------------------------- int main() //-----------------------------------------------------------------------------
{ string inputString; //создаем строку cout << "Enter sting: ";<br> cin >> inputString; //вводим её и инициализируем cout << "Max dot count in a row is: ";<br> cout << getMaxDotCountInARow(inputString); //передаем строку в функцию и выводим полученное число<br> cout << endl; //переносим строку<br> system("pause"); //ставим программу в режим ожидания, до нажатия любой клавиши на клавиатуре return 0; //возращаем системе код '0', что значит, что программа завершила работу корректно. }
К вопросу, как бы сделал я.
Большое спасибо Вам)
не за что