0 / 0 / 0
Регистрация: 15.10.2017
Сообщений: 37
1

Вставить число 400 перед всеми нечетными элементами массива

29.10.2017, 22:23. Показов 1758. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Дан массив B, состоящий из n элементов. Элементы массива ввести в программе. Вставить число 400 перед всеми нечетными элементами массива. Вывести новый массив.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2017, 22:23
Ответы с готовыми решениями:

Вставить число К перед всеми элементами в которых есть цифра 2
дан массив целых чисел (n=10) заполненій случайным образом. вставить число К перед всеми элементами...

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

Удалить элементы массива, перед всеми элементами в которых есть цифра 1
Дан массив удалить элементы перед всеми элементами в которых есть цифра 1. помогите кто...

Вставить число к между всеми соседними элементами, имеющими одинаковый знак
Здравствуйте! Прошу помочь. Есть задание: вставить число К между всеми соседними элементами,...

6
Эксперт Pascal/Delphi
6809 / 4566 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
30.10.2017, 09:24 2
Вставить по одному элементу перед всеми элементами кратными заданному числу
Подправьте под свое задание.
0
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
30.10.2017, 15:08 3
Pascal
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
const
  N = 10;
 
type
  IntArray = array of integer;
 
var
  A: IntArray;
  Count: integer;
 
procedure Print();
begin
  for var i := 0 to A.Length - 1 do
    Write(A[i]:5);
  Writeln();
end;
 
procedure Add(a: IntArray; i: integer);
begin
  for var j := a.Length - 1 downto i + 1 do
    a[j] := a[j - 1];
  a[i] := 400;
end;
 
begin
  SetLength(A, N);
  for var i := 0 to N - 1 do
  begin
    Readln(A[i]);
    Inc(Count, Ord(A[i] mod 2 <> 0));
  end;
  SetLength(A, N + Count);
  
  Print();
  var i := 0;
  while i < A.Length do
  begin
    if A[i] mod 2 <> 0 then
    begin
      Add(A, i);
      Inc(i);
    end;
    Inc(i);
  end;
  Print();
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32793 / 21133 / 8144
Регистрация: 22.10.2011
Сообщений: 36,393
Записей в блоге: 8
30.10.2017, 15:52 4
Лучший ответ Сообщение было отмечено DADGAMBLING как решение

Решение



Зачем тут на каждом шаге еще вложенный цикл? Все прекрасно делается одним-единственным циклом, достаточно только чуть-чуть выйти за пределы шаблона, и перестать думать что по массиву можно перемещаться только слева направо:

Pascal
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
const
  N = 10;
 
var
  A: array of integer;
  Count: integer;
 
procedure Print();
begin
  for var i := 0 to A.Length - 1 do
    Write(A[i]:5);
  Writeln();
end;
 
begin
  SetLength(A, N);
  for var i := 0 to N - 1 do
  begin
    Readln(A[i]);
    Inc(Count, A[i] mod 2);
  end;
  Print();
  
  SetLength(A, N + Count);
  
  var i := N + Count - 1;
  var j := N - 1;
  while j >= 0 do
  begin
    A[i] := A[j];
    if Odd(A[i]) then 
    begin
      Dec(i); A[i] := 400;
    end;
    Dec(i); Dec(j);
  end;
  
  Print();
end.
P.S. Конструкция
Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
Pascal
1
Inc(Count, Ord(A[i] mod 2 <> 0));
взорвала мне мозг...
2
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
30.10.2017, 16:07 5
Хм... Все понял. Переписал.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32793 / 21133 / 8144
Регистрация: 22.10.2011
Сообщений: 36,393
Записей в блоге: 8
31.10.2017, 12:03 6
Ты бы хотя бы копирайты, или ссылки на посты с решениями ставил, когда чужой код берешь и копируешь, как свой. А то, неровен час, отвернутся от тебя все... Кому такое счастье надо - ""Папа решает, а Вася сдает" (С) ? Мне это точно не нужно...
0
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
31.10.2017, 16:12 7
volvo, в смысле копирую?

Добавлено через 38 секунд
Я пишу сам... Что мне видео записать как я код пишу, или что?

Добавлено через 1 минуту
Если ты имеешь ввиду https://ru.wikibooks.org/wiki/... calABC.Net, то там я решения свои выкладываю...

Добавлено через 4 минуты
Мне не приятно, что лучший друг мне не верит...
0
31.10.2017, 16:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2017, 16:12
Помогаю со студенческими работами здесь

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

Вставить перед всеми строками, первый элемент которых делится на 3,строку из нулей
Дан двумерный массив размером n*m, заполненный случайным образом. 1)Вставить перед всеми...

Вставить перед последним отрицательным элементом массива число, равное наибольшему из всех элементов.
1. Вставить перед последним отрицательным элементом массива число, равное наибольшему из всех...

Вставить заданное число перед всеми нечетными элементами массива
Дан одномерный массив, содержащий целые числа. Использовать дополнительные массивы нельзя....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru