Найти количество групп подряд идущих одинаковых символов - 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; }
Объяснение кода листинга программы
В этом коде пользователь вводит размер массива, затем последовательность целых чисел, после чего программа ищет последовательности одинаковых чисел в этой последовательности. Код выводит количество таких последовательностей и количество элементов в каждой из них. Вот список ключевых моментов кода:
- #include
- Подключение стандартной библиотеки ввода-вывода - *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) - Проверка на количество элементов в текущей последовательности больше 1
- { - Начало блока условий
- printf(
Number %d its count is %d\n
, Arr[i-1] , currCount); - Вывод информации о текущей последовательности - Count++; - Увеличение счетчика общего количества последовательностей
- currCount = 1; - Сброс счетчика текущей последовательности
- } - Конец блока условий
- } - Конец блока условий
- if (currCount > 1) - Проверка на количество элементов в последней последовательности больше 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; - Конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д