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

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

03.02.2014, 21:20. Показов 3008. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте,помогите решить.

Переписать сначала отрицательные ,а затем положительные элементы массива BC(N) в массив ZBC
N<=20
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2014, 21:20
Ответы с готовыми решениями:

Переписать сначала отрицательные, а затем положительные элементы массива В в массив C
Переписать сначала отрицательные, а затем положительные элементы массива В в массив C.

Из одного массива в другой переписать сначала положительные элементы, затем отрицательные
program P7; uses crt; var Z: array of integer; R: array of integer; i,k: integer; Begin...

Как переписать в массив Z сначала положительные, а затем отрицательные элементы массива C
Люди напишите программу для данного задания на языке Qbasic. Переписать подряд в массив Z сначала...

Переписать массив b(n) сначала отрицательные,а затем положительные элементы данного массива a(n)
Переписать массив b(n) сначала отрицательные,а затем положительные элементы данного массива...

5
Супер-модератор
6170 / 2912 / 1300
Регистрация: 04.03.2013
Сообщений: 5,774
Записей в блоге: 1
04.02.2014, 11:22 2
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

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
var
  BC, ZBC : array [1..20] of integer;
  i, j, n1, n2 : integer;
begin
  n2 := 0;
  randomize;
  repeat
    write('введите размерность массива BC (n <=20): ');
    readln(n1)
  until n1 in [1..20];
  writeln('массив BC:');
  for i := 1 to n1 do
  begin
    BC[i] := random(20) - 10;
    write(BC[i]:4);
    if BC[i] <> 0 then inc(n2) {считаем размер будущего массива ZBC}
  end;
  writeln;
  writeln('массив ZBC:');
  j := 1;
  for i := 1 to n1 do
    if BC[i] < 0 then
    begin
      ZBC[j] := BC[i];
      inc(j)
    end;
  for i := 1 to n1 do
    if BC[i] > 0 then
    begin
      ZBC[j] := BC[i];
      inc(j)
    end;
  for i := 1 to n2 do
    write(ZBC[i]:4);
  readln   
end.
0
Модератор
9746 / 5081 / 3287
Регистрация: 17.08.2012
Сообщений: 15,638
04.02.2014, 11:29 3
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

С сохранением порядка следования элементов
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
const m = 20;
 
var i, o, n: integer;
    bc, zbc: array [1..m] of integer;
 
begin
  randomize;
  repeat
    write('n = ');
    readln(n);
    if (n < 1) or (n > m) then writeln('n out of range 1..', m, ', reenter.')
  until (n >= 1) and (n <= m);
  o := 1;
  writeln('Source array:');
  for i := 1 to n do
    begin
      bc[i] := random(199) - 99;
      write(bc[i]:4);
      if bc[i] < 0
        then begin
          zbc[o] := bc[i];
          inc(o)
        end
    end;
  writeln;
  writeln('Result:');
  for i := 1 to n do
    begin
      if bc[i] >= 0
        then begin
          zbc[o] := bc[i];
          inc(o)
        end;
      write(zbc[i]:4)
    end;
  readln
end.
Без сохранения порядка следования положительных элементов
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
const m = 20;
 
var i, o, p, n: integer;
    bc, zbc: array [1..m] of integer;
 
begin
  randomize;
  repeat
    write('n = ');
    readln(n);
    if (n < 1) or (n > m) then writeln('n out of range 1..', m, ', reenter.')
  until (n >= 1) and (n <= m);
  o := 1;
  p := n;
  writeln('Source array:');
  for i := 1 to n do
    begin
      bc[i] := random(199) - 99;
      write(bc[i]:4);
      if bc[i] < 0
        then begin
          zbc[o] := bc[i];
          inc(o)
        end
        else begin
          zbc[p] := bc[i];
          dec(p)
        end;
    end;
  writeln;
  writeln('Result:');
  for i := 1 to n do write(zbc[i]:4);
  readln
end.
0
0 / 0 / 0
Регистрация: 03.02.2014
Сообщений: 22
04.02.2014, 17:55  [ТС] 4
ildwine, Спасибо.

Добавлено через 16 секунд
Cyborg Drone, Спасибо большое.
0
0 / 0 / 0
Регистрация: 03.02.2014
Сообщений: 22
19.02.2014, 20:43  [ТС] 5
Cyborg Drone, как ввести этот же массив не использую рандомайз?
0
Модератор
9746 / 5081 / 3287
Регистрация: 17.08.2012
Сообщений: 15,638
20.02.2014, 00:09 6
??? ну хорошо, напишу. Уберите строчки
Pascal
1
2
randomize;
bc[i] := random(199) - 99;
перед
Pascal
1
writeln('Source array:');
напишите
Pascal
1
2
3
4
5
6
writeln('Enter elements of array:');
for i := 1 to n do 
  begin
    write('bc[', i, '] = ');
    readln(bc[i])
  end;
если символов в числах, включая знак, будет больше 4, подправьте все строчки
Pascal
1
2
write(bc[i]:4);
write(zbc[i]:4)
под необходимое число символов.

Не по теме:

Не понимаю, как Вам НЕ удалось подрихтовать всё самостоятельно.

0
20.02.2014, 00:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2014, 00:09
Помогаю со студенческими работами здесь

Переписать в массив B сначала отрицательные, а затем положительные элементы исходного массива
Помогите пожалуйста решить эти задачки... 1. Одномерные массивы Переписать в массив B(N)...

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

Файлы. Переписать в другой файл сначала положительные, затем отрицательные числа
Дан файл f компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю....

Из одного массива переписать информацию в другой: сначала элементы с четными индексами, затем с нечетными
1. Из одного массива переписать информацию в другой следующим образом: сначала элементы с четными...


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

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

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