Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 13.10.2013
Сообщений: 14
1

Дан целочисленный массив размера N. Вставить перед каждой серии нулевой элемент

15.01.2014, 12:38. Просмотров 1827. Ответов 3
Метки нет (Все метки)

Напишите пожалуйста с помощью массивов с комментариями(

Дан целочисленный массив размера N. Вставить перед каждой серии нулевой элемент.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2014, 12:38
Ответы с готовыми решениями:

После каждой серии вставить нулевой элемент
private void button1_Click(object sender, EventArgs e) { int l = 0; ...

Дан целочисленный массив размера N. Вставить перед каждой его серией элемент с нулевым значением
С++ Дан целочисленный массив размера N. Вставить перед каждой его серией элемент с нулевым...

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

Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент
#include "stdafx.h" #include <iostream> using namespace std; int main() { int n; int k=0;...

3
14 / 14 / 3
Регистрация: 07.01.2014
Сообщений: 37
15.01.2014, 14:09 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
static void Main()
        {
            const int n = 10;
            int i;
            var random = new Random();
            var array = new int[2 * n];
 
            var aMax = n;
            for (i = 0; i < aMax; i++)
            {
                array[i] = random.Next(1, 5);
                Console.Write(array[i] + " ");
            }
 
            i = 2;
            var c = 0;
            while (!(i > aMax))
            {
                if (array[i] == array[i - 1])
                    c++;
                if (c == 0) 
                    continue;
                for (c = aMax + 1; c < i + 1; c--)
                    array[c] = array[c - 1];
                aMax++;
                array[i + 1] = 0;
                c = 0;
            }
        }
1
4 / 4 / 1
Регистрация: 26.04.2013
Сообщений: 14
15.01.2014, 17:37 3
Цитата Сообщение от ПрограммерООП Посмотреть сообщение
Если серия - это группа подряд идущих одинаковых элементов
тогда так
Исправил предложенный выше вариант, только он теперь работает корректно. Добавил проверку на серию цифр.

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
        static void Main(string[] args)
        {
            //заполняем массив
            const int n = 10;
            int i;
            var random = new Random();
            var array = new int[2 * n];
 
            int aMax = n;
            for (i = 0; i < aMax; i++)
            {
                array[i] = random.Next(1, 5);
                Console.Write(array[i] + " ");
            }
            
            i = 1;
            //флаг
            var c = 0;
            while (i < aMax)
            {
                if (array[i] == array[i - 1])
                    c++;
                if (c == 0)
                {
                    i++;
                    continue;
                }
                for (int b = aMax; b > i; )
                    array[b] = array[--b];
                array[i - 1] = 0;
 
                //проверяем последовательность на серию
                while (array[i + 1] == array[i + 2])
                {
                    i++;
                }
                aMax++;
                i = i + 2;
                c = 0;
            }
 
            //выводим результат
            Console.WriteLine("\n\nПосле сдвига серий цифр:");
            for (i = 0; i < aMax; i++)
            {
                Console.Write(array[i] + " ");
            }
        }
0
1 / 1 / 0
Регистрация: 13.10.2013
Сообщений: 14
20.01.2014, 13:16  [ТС] 4
AndrewK82, а можно поподробнее continue и сама вставка 0 рассказать?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2014, 13:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Дан массив размера N. Вставить элемент с нулевым значением перед минимальным и после максимального элемента массива.
Дан массив размера N. Вставить элемент с нулевым значением перед минимальным и после максимального...

Дан целочисленный линейный массив. Вставить в него заданное число перед последним четным элементом
Дан целочисленный линейный массив. Вставить в него заданное число перед последним четным элементом

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

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


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

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

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