Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 03.04.2014
Сообщений: 35
1

Все отрицательные элементы массива перенести в его начало, а все остальные - в конец

28.09.2015, 13:33. Просмотров 2030. Ответов 12
Метки нет (Все метки)

преобразовать массив x по следующему правилу(воспользовавшись массивом y как вспомогательным): Все отрицательные элементы массива x перенести в его начало,а все остальные - в конец, сохраняя исходное взаимное расположение как среди отрицательных, так и среди остальных элементов.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2015, 13:33
Ответы с готовыми решениями:

Все отрицательные элементы массива перенести в его начало, а все остальные в его конец
Задана последовательность из N целых чисел. Все отрицательные элементы массива перенести в его...

Преобразовать массив Х по следующему правилу: все отрицательные элементы массива Х перенести в его начало, а все остальные в конец
Помогите решить,срочно надо Задание: Организовать ручное заполнение целочисленного массива Х,...

Все нулевые элементы перенести в начало, а все остальные – в конец
6. Задать массив 12 чисел, содержащий несколько нулей. Воспользовавшись вспомогательным массивом,...

В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования
В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец...

12
13 / 13 / 18
Регистрация: 08.01.2015
Сообщений: 53
28.09.2015, 14:16 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  x, y: array[1..100] of integer;
  i, a, b: integer;
 
begin
  writeln('введите колво элементов в массиве и заполните их');
  readln(a);
  for i := 1 to a do
    readln(x[i]);
  for i := 1 to a do
    if x[i] < 0 then begin b := b + 1;y[b] := x[i]; end;
  for i := 1 to a do
    if x[i] >= 0 then begin b := b + 1;y[b] := x[i]; end;
  for i := 1 to a do
    x[i] := y[i];
  //вывод
  for i := 1 to a do
    write(x[i], ' ');
end.
пожалуйста
0
3606 / 1702 / 1927
Регистрация: 10.12.2014
Сообщений: 6,659
29.09.2015, 09:42 3
vovachuk, до первого обращения переменная b не инициализирована.
И не понятно зачем использовать дополнительный массив.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var
  x : array [1..100] of Integer;
  n, i, t : Integer;
  
begin
  Write('Число элементов n='); ReadLn(n);
  for i := 1 to n do
    begin
      Write('x[', i, '] = '); ReadLn(x[i]);
    end;
  Write('x :'); for i := 1 to n do Write(#32, x[i]); WriteLn;
  repeat
    t := 0;
    for i := 1 to n-1 do
      if (x[i] >= 0) and (x[i+1] < 0) then
        begin
          t := x[i+1];
          x[i+1] := x[i];
          x[i] := t;
        end;
  until t = 0;
  Write('x :'); for i := 1 to n do Write(#32, x[i]); WriteLn;
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29287 / 19358 / 7596
Регистрация: 22.10.2011
Сообщений: 33,758
Записей в блоге: 6
29.09.2015, 09:46 4
JuriiMW, это неправильное решение:
Число элементов n==5
x[1] = 2
x[2] = -3
x[3] = 1
x[4] = -1
x[5] = 7
x : 2 -3 1 -1 7
x : -1 -3 1 2 7
, и где выполняется:
Цитата Сообщение от grackham267 Посмотреть сообщение
сохраняя исходное взаимное расположение как среди отрицательных, так и среди остальных элементов.
? Ответ должен быть таким:
-3 -1 2 1 7

Здесь было правильное решение: В одномерном массиве все отрицательные элементы переместить в начало массива
0
3606 / 1702 / 1927
Регистрация: 10.12.2014
Сообщений: 6,659
29.09.2015, 09:51 5
volvo, исправлено!
0
Модератор
60201 / 45335 / 31282
Регистрация: 18.05.2008
Сообщений: 108,901
29.09.2015, 09:52 6
Цитата Сообщение от JuriiMW Посмотреть сообщение
И не понятно зачем использовать дополнительный массив.
https://www.cyberforum.ru/post1618758.html
0
13 / 13 / 18
Регистрация: 08.01.2015
Сообщений: 53
29.09.2015, 10:32 7
JuriiMW, читайте условия! воспользовавшись массивом y как вспомогательным
0
1641 / 1070 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
29.09.2015, 10:37 8
vovachuk, это дано как рекомендация (для более простого понимания процесса), а не как руководство к действию.

Добавлено через 1 минуту
ИМХО
0
13 / 13 / 18
Регистрация: 08.01.2015
Сообщений: 53
29.09.2015, 10:38 9
давайте так. Если в задании есть условие, то его надо выполнить. Я мог сделать и без доп. массива, но я лишь следовал условию... А тут приходят умные люди и начинают критиковать... не надо так...
1
1641 / 1070 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
29.09.2015, 10:41 10
vovachuk, есть суть задания и если в этой "сути" не предполагается дальнейшее использование вспомогательных элементов решения, то ну его "нафиг" эти лишние вспомогательные элементы.
0
13 / 13 / 18
Регистрация: 08.01.2015
Сообщений: 53
29.09.2015, 11:23 11
критиковать 13-ти летнего школьника ваше любимое занятие?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29287 / 19358 / 7596
Регистрация: 22.10.2011
Сообщений: 33,758
Записей в блоге: 6
29.09.2015, 11:25 12
Возраст здесь ни при чем. Если 13-летний школьник отвечает на форуме - то он должен быть готов и к критике. Иначе получается игра в одни ворота, 13-летние будут писать что попало, а им - слова не скажи. Я понятно объясняю?
0
1641 / 1070 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
29.09.2015, 11:29 13
Критика - это не есть "плохо". Критику просто надо правильно воспринимать - это повод задуматься и быть может чему-то научиться.
И возраст тут ни причём, гении бывают и 6-ти лет отроду.

Добавлено через 39 секунд

Не по теме:

volvo, опередил. )

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2015, 11:29

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

Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец
1) Дано натуральное n. Написать программу вычисления значений...

Все отрицательные элементы массива перенести в начало, а все остальные — в конец
Преобразовать массив Х по следующему правилу: все отрицательные элементы массива перенести в...

Все отрицательные элементы массива X перенести в его начало, а все остальные - в конец
преобразовать массив x по следующему правилу(воспользовавшись массивом y как вспомогательным): Все...

Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец
Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец, сохраняя...


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

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

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