Найти количество групп подряд идущих одинаковых символов - C (СИ)

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

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

Дана таблица содержащая группы одинаковых подряд идущих чисел. Вывести на экран "число-кол-во чисел в группе, ..." В конце вывести итоговое сообщение, сколько всего групп. группы одинаковых подряд идущих чисел вышлядят как то так: 11133333445556 , и задаются с клавиатуры. написать на языке C сам не соображаю.. напишите плз.. а то горю на информатике.. ..спасибо Добавлено через 12 часов 37 минут 57 секунд есть код на C++ помогите перевести в С
#include <iostream>
using namespace std;
 
int main()
{
    cout << "Enter the size of array: ";
    int n;
    cin >> n;
    int* Arr = new int [n];
    for (int i=0; i<n; i++)
    {
        cout << "Enter the " << i + 1 << "th(st) number: ";
        cin >> Arr[i];
    }
    cout << endl << "Proceeding..." << endl;
    int currCount = 1; 
    int Count = 0;
    for (int i=0; i<n; i++)
    {
        if (Arr[i]==Arr[i-1])
            currCount++;
        else
            if (currCount>1)
            {
                cout << "Number " << Arr[i-1] << ", its count is " << currCount << endl;
                Count++;
                currCount = 1;
            }
    }
    if (currCount > 1)
    {
        cout << "Number " << Arr[n-1] << ", its count is " << currCount << endl;
        Count++;
    }
    cout << "The count of files is " << Count << endl;
    delete [] Arr;
    cin >> Count;
}

Решение задачи: «Найти количество групп подряд идущих одинаковых символов»

textual
Листинг программы
#include <stdio.h>
 
 
int main(int argc, char *argv[])
{
    
    printf("Enter the size of array: ");
    int n, i;
    scanf("%d",&n);
    int* Arr = (int*)malloc(n * sizeof(int));
    for (i=0; i<n; i++)
    {
        printf("Enter the %d th(st) number: ", i + 1);
        scanf("%d",&Arr[i]);
    }
    printf("\nProceeding...\n");
    int currCount = 1; 
    int Count = 0;
    for (i=0; i<n; i++)
    {
        if (Arr[i]==Arr[i-1])
            currCount++;
        else
            if (currCount>1)
            {
                printf("Number %d its count is %d\n", Arr[i-1] , currCount);
                Count++;
                currCount = 1;
            }
    }
    if (currCount > 1)
    {
        printf("Number %d ,its count is %d\n", Arr[n-1] , currCount);
        Count++;
    }
    printf("The count of files is %d\n", Count);
    free(Arr);
    
    system("pause");
    return 0;
}

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

В этом коде пользователь вводит размер массива, затем последовательность целых чисел, после чего программа ищет последовательности одинаковых чисел в этой последовательности. Код выводит количество таких последовательностей и количество элементов в каждой из них. Вот список ключевых моментов кода:

  1. #include - Подключение стандартной библиотеки ввода-вывода
  2. *int main(int argc, char argv[])** - Определение точки входа в программу
  3. printf(Enter the size of array:); - Вывод запроса на ввод размера массива
  4. int n, i; - Объявление переменных для размера массива и цикла
  5. scanf(%d,&n); - Ввод размера массива с клавиатуры
  6. *int Arr = (int)malloc(n sizeof(int));** - Выделение памяти под массив целых чисел
  7. for (i=0; i<n; i++) - Начало цикла для заполнения массива
  8. printf(Enter the %d th(st) number:, i + 1); - Вывод запроса на ввод элемента массива
  9. scanf(%d,&Arr[i]); - Ввод элемента массива
  10. printf(\nProceeding...\n); - Вывод сообщения о начале обработки данных
  11. int currCount = 1; - Объявление переменной для подсчета текущей последовательности
  12. int Count = 0; - Объявление переменной для подсчета общего количества последовательностей
  13. for (i=0; i<n; i++) - Начало цикла для поиска последовательностей
  14. if (Arr[i]==Arr[i-1]) - Проверка на равенство текущего и предыдущего элементов
  15. { - Начало блока условий
  16. currCount++; - Увеличение счетчика текущей последовательности
  17. } - Конец блока условий
  18. else - Проверка на изменение текущей последовательности
  19. { - Начало блока условий
  20. if (currCount>1) - Проверка на количество элементов в текущей последовательности больше 1
  21. { - Начало блока условий
  22. printf(Number %d its count is %d\n, Arr[i-1] , currCount); - Вывод информации о текущей последовательности
  23. Count++; - Увеличение счетчика общего количества последовательностей
  24. currCount = 1; - Сброс счетчика текущей последовательности
  25. } - Конец блока условий
  26. } - Конец блока условий
  27. if (currCount > 1) - Проверка на количество элементов в последней последовательности больше 1
  28. { - Начало блока условий
  29. printf(Number %d ,its count is %d\n, Arr[n-1] , currCount); - Вывод информации о последней последовательности
  30. Count++; - Увеличение счетчика общего количества последовательностей
  31. } - Конец блока условий
  32. printf(The count of files is %d\n, Count); - Вывод общего количества последовательностей
  33. free(Arr); - Освобождение памяти под массивом
  34. system(pause); - Остановка программы до нажатия клавиши
  35. return 0; - Конец программы

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


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

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

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