Подсчитать наибольшее количество идущих подряд пробелов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здраствуйте, помогите написать код к такой задаче: Дана строка символов S. а) Подсчитать наибольшее количество идущих подряд пробелов. б) Выяснить, верно ли, что в строке S имеются пять идущих подряд букв е.

Решение задачи: «Подсчитать наибольшее количество идущих подряд пробелов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define n 25
 
int main()
{
    int i;
    int countSpace = 0;
    int countTemp = 0;
    char ar[n]; //массив символов
 
    //скопируем тестовую строку, максимум пробелов подряд = 3
    strncpy(ar, "some   string", n);
 
    printf("String is: %s\n", ar);
 
    for (i = 0; i < n; i++)
    {
        //если попался хоть один пробел
        if (ar[i] == ' ')
        {
            countTemp = 1;
 
            //пока ещё есть рядом пробелы увеличиваем счётчик
            while (ar[i] && ar[++i] == ' ')
            {
                countTemp++;
            }
 
            //заносим в countSpace новое число пробелов только
            //если оно больше того что было до этого
            countSpace = (countTemp < countSpace) ? countSpace : countTemp;
        }
    }
    printf("countSpace = %d\n", countSpace);
    system("pause");
 
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек
  2. Установка константы n равной 25
  3. Объявление переменных: i, countSpace, countTemp, ar
  4. Копирование тестовой строки в массив ar
  5. Вывод тестовой строки на экран
  6. Инициализация счётчика пробелов countSpace равным 0
  7. Инициализация счётчика пробелов countTemp равным 0
  8. Цикл по всем элементам массива ar
  9. Проверка каждого элемента массива на равенство пробелу ' '
  10. Если элемент равен пробелу, то увеличиваем счётчик countTemp на 1
  11. Пока следующий элемент массива также равен пробелу, увеличиваем счётчик countTemp на 1
  12. Если countTemp меньше текущего значения countSpace или countSpace равно 0, то обновляем countSpace значением countTemp
  13. Вывод значения countSpace на экран
  14. Вызов функции system(pause) для приостановки программы до нажатия клавиши
  15. Конец программы с возвращаемым значением 0

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы