Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 24.06.2016
Сообщений: 143
1

Преобразовать массив, увеличив первую серию наибольшей длины на один элемент

26.06.2016, 14:01. Показов 751. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан массив, состоящий из n элементов. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии — количество этих элементов (длина серии может быть равна 1). Преобразовать массив, увеличив первую серию наибольшей длины на один элемент.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2016, 14:01
Ответы с готовыми решениями:

Преобразовать массив, увеличив его первую серию наибольшей длины на один элемент
Привет ребят! Есть рабочая программа на паскале: // Дан целочисленный массив размера N. //...

Преобразовать массив, увеличив каждую его серию на один элемент
Дан массив, состоящий из n элементов. Назовем серией группу подряд идущих одинаковых элементов, а...

Преобразовать массив, увеличив каждую его серию на один элемент
Дан целочисленный массив размера N. Серия-это группа подряд идущих одинаковых элементов, а ее...

Преобразовать одномерный массив, увеличив каждую его серию на 1 элемент
Подскажите,пожалуйста, как написать эту программу. Дан целочисленный массив размера N. Назовем...

4
16 / 12 / 12
Регистрация: 11.06.2015
Сообщений: 49
26.06.2016, 14:59 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#define N 15
 
int main() {
    int oldArr[N] = {3,3,3,5,5,4,4,3,5,8,2,2,2,1,0};
    int newArr[N + 1];
    int i, len = 1, maxLen = 1, pos = N - 1, n = N - 1;
    /*ищем длину и расположение наибольшей серии*/
    while (n > 0) {
        if (oldArr[n] == oldArr[n - 1]) {
            len++;
            if (len >= maxLen) {
                maxLen = len;
                pos = n - 1;
            }
        }
        else len = 1;
        n--;
    }
    /*заполняем новый массив и выводим его на экран*/
    for (i = 0, n = 0; i < N; i++, n++) {
        newArr[n] = oldArr[i];
        if (i == pos) {
            newArr[++n] = oldArr[pos];
        }
    }
    for (i = 0; i < N + 1; i++)
        printf("%d ", newArr[i]);
    return 0;
}
В случае чего в вариант с динамическими массивами легко можно переделать
1
1 / 1 / 0
Регистрация: 24.06.2016
Сообщений: 143
26.06.2016, 18:29  [ТС] 3
Dimon_KV, а почему серию 2 2 2 он не увеличил на 1 ?
0
16 / 12 / 12
Регистрация: 11.06.2015
Сообщений: 49
26.06.2016, 20:05 4
Так в вашем условии сказано же - первая серия наибольшей длины.

Кстати, после 19-й строки надо вставить:
C
1
if (maxLen == 1) pos = 0;
Это на случай, если нет одинаковых элементов, идущих подряд
0
1 / 1 / 0
Регистрация: 24.06.2016
Сообщений: 143
27.06.2016, 00:16  [ТС] 5
Dimon_KV, Спасибо большое
0
27.06.2016, 00:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2016, 00:16
Помогаю со студенческими работами здесь

Преобразовать массив, уменьшив каждую его серию на один элемент
Помогите решить задачу. Вот код который написал я он работает немного не точно, доработайте плиииз...

Преобразовать массив, увеличив первую серию наибольшей длины на один элемент
Дан массив, состоящий из n элементов. Назовем серией группу подряд идущих одинаковых элементов, а...

Преобразовать массив, увеличив его первую серию наибольшей длины на один элемент
дан целочисленный массив размера N. Преобразовать массив, увеличив его первую серию наибольшей...

Преобразовать массив, увеличив его первую серию наибольшей длины на один элемент
Ребятки, кому не сложно выручите с задачкой) Дан целочисленный массив размера N. Преобразовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru