Найти количество групп подряд идущих одинаковых символов - 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; - Конец программы