Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Inn@
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 6
#1

Превратить массив целых чисел размерности N, удалив из массива все серии, длина которых больше k - C++

18.03.2014, 00:14. Просмотров 437. Ответов 1
Метки нет (Все метки)

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

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <stdio.h>
#include <conio.h>
#include<stdlib.h>
const int N = 100;
int main()
{
    int a[N], n, i, j, k, p, s, q;
    printf("vvedite razmer:\n");
    scanf_s("%d", &n);
    printf("Vvedine elementi massiva\n");
    for (i = 0; i < n; i++)// создаем массив
    {
        scanf_s("%d", &a[i]);
    }
    printf("vvedite dliny serii\n k=");
    scanf_s("%d", &k);// задаем длинну серии
    for (i = 1; i < n;)
    {
        if (a[i] == a[i - 1])//если есть одинковые элементы
        {
            j = i;//начало
            s = 1;//длинна серии 1
            p = i - 1;// начало на 1 раньше
            while ((j <= n) && (a[j] == a[j - 1]))//пока серия и не конец списка  vmesto j -- peremenuu druguu
            {
                s++;
                j++;
            }
            if (s > k)//если серия больше k
                     for (j = 1; j < s; j++)
        {
        for (q = p; q < (n - 1); q++, n--)//сдвигаем массив влево на начало серии  и уменьшаем массив
        a[q] = a[q + 1];
 
        }
        }
        else i = i + s;//перешагиваем через серию
        }
        else i = i + 1;//если нет серии, то идем  вперед
        
        if (n == 0)
            printf("vse ydaleno");
        else
        {
            printf("massiv");
            for (i = 1; i < n; i++)
                printf("%d ", a[i]);
        }
        _getch();
        return 0;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 00:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Превратить массив целых чисел размерности N, удалив из массива все серии, длина которых больше k (C++):

В массиве целых чисел из 20 элементов найти все элементы, значение которых больше среднего арифметического массива - C++
В массиве целых чисел из 20 элементов найти все элементы, значение которых больше среднего арифметического массива. Вывести на кран...

задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная) - C++
задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная)

Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый массив переписать все четные - C++
Помогите сделать данную программу: Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый массив переписать...

Составьте программу, которая выводит индексы тех элементов массива (состоящего из В целых чисел), значение которых больше заданного числа А - C++
Составьте программу, которая выводит индексы тех элементов массива (состоящего из В целых чисел), значение которых больше заданного числа...

Найти количество последовательностей положительных чисел, длина которых больше 7 - C++
Задачка такая - заполнить одномерный массив элементами от -50 до 50. Найти количество последовательностей положительных чисел, длина...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. максимальный элемент массива; 2. сумму элементов массива,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Fene4ka_
89 / 89 / 16
Регистрация: 24.01.2014
Сообщений: 1,215
18.03.2014, 02:45 #2
Inn@,

Не по теме:

для того, чтобы не создавать константы, которые предназначены для размера массива, просто создайте динамический массив

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 02:45
Привет! Вот еще темы с ответами:

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a, b]. освободившиеся в конце массива элементы заполнить нулями. - C++
Сжать массив, удалив из него все элементы, модуль которых находится в интервале . освободившиеся в конце массива элементы заполнить нулями....

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу: Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

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

Сжать массив, удалив из него все элементы, модуль которых не превышает 1. - C++
В одномерном массиве, состоящем из 20 вещественных элементов, вычислить: 1) сумму элементов массива с нечетными номерами; 2) сумму...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru