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

Поменять местами значение первого четного элемента массива со значением последнего нечетного элемента массива.

28.02.2012, 07:18. Показов 2866. Ответов 4
Метки нет (Все метки)

Дан массив С(30). Поменять местами значение первого четного элемента массива со значением последнего нечетного элемента массива.

Формирование, обработку и вывод оформить в виде отдельных процедур.

 Комментарий модератора 
Заголовок темы изменен модератором.
Он должен быть информативным, отображая содержание темы.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2012, 07:18
Ответы с готовыми решениями:

Поиск первого или последнего четного элемента массива
поиск первого или последнего четного элемента: 1)в массиве есть хотя бы один такой элемент 2)в...

Вывести значение и номер последнего четного элемента массива или сообщение об отсутствии четных значений
Ввести одномерный массив размерностью n. Вывести значение и номер последнего четного элемента или...

Если элемент второго массива больше соответствующего элемента первого массива, то поменять элементы местами
Заданные два числовых массива X(N) и Y(N) преобразуйте их по правилу: для каждой пары большее из...

Целочисленный массив. Поменять местами значения первого и последнего элемента и т.д.
Дан одномерный целочисленный массив А, состоящий из N элементов, N — заданное натуральное число,...

4
Mobile Software Engineer
Эксперт С++
5365 / 1584 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
28.02.2012, 19:43 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
const
  n = 30;
type
  TArr = array[1..n] of integer;
var
  arr: TArr;
  index: byte;
 
procedure FormMass(var arr: TArr);
var
  i: byte;
begin
  randomize;
  for i:=1 to n do
    arr[i]:=random(30);
end;
 
procedure Obmen(var arr: TArr; var index: byte);
var
  buf, i: byte;
begin
  for i:=1 to n do
    if odd(arr[i]) then index:=i;
  buf:=arr[index];
  arr[index]:=arr[1];
  arr[1]:=buf;
end;
 
procedure WriteMass(arr: TArr);
var
  i: byte;
begin
  writeln('Массив: ');
  for i:=1 to n do
    write(arr[i], ' ');
  writeln;
end;
 
begin
  FormMass(arr);
  WriteMass(arr);
  Obmen(arr, index);
  WriteMass(arr);
end.
0
53 / 53 / 37
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
28.02.2012, 20:02 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
program project1;
 
uses crt;
 
const
  nMax = 30;
 
var
  c: array [1..nMax] of integer;
  i,ich,inch,tmp: integer;
 
procedure forming;  {заполнение и вывод массива}
begin
  randomize;
  textcolor(lightgreen);
  write('Исходный массив: ');
  for i:=1 to nMax do
    begin
      c[i]:=random(50)+1;
      write(c[i],' ');
    end;
  writeln;
end;
 
procedure search;   {поиск первого четного и последнего нечетного}
begin
    textcolor(white);
  for i:=1 to nMax do
    if not odd(c[i]) then
      begin
        ich:=i;
        writeln('c[',ich,'] = ',c[ich],' - первый четный элемент');
        break;
      end;
  for i:=nMax downto 1 do
    if odd(c[i]) then
      begin
        inch:=i;
        writeln('c[',inch,'] = ',c[inch],' - последний нечетный элемент');
        break;
      end;
end;
 
procedure exchange;     {обмен элементов местами}
begin
  tmp:=c[ich];
  c[ich]:=c[inch];
  c[inch]:=tmp;
end;
 
procedure output;       {вывод измененного массива}
begin
  textcolor(lightgreen);
  write('Измененный массив: ');
  for i:=1 to nMax do write(c[i],' ');
  readln;
end;
 
begin                   {тело основной программы}
  forming;
  search;
  exchange;
  output;
end.
Ev[G]eN, первый элемент массива необязательно имеет четное значение
0
trainspotting
1086 / 486 / 384
Регистрация: 11.11.2010
Сообщений: 773
28.02.2012, 20:06 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure Obmen(var arr:TArr);
var
  i,buf,i1,i2:integer;
begin
  for i:=1 to n do
    begin
      if odd(arr[i]) then i2:=i;
      if not odd(arr[n-i+1]) then i1:=n-i+1;
      (*Тут еще проверку по-хорошему надо сделать, 
      есть ли вообще четные или нечетные, иначе результаты будут
      плачевные*)
    end;
    buf:=arr[i1];
    arr[i1]:=arr[i2];
    arr[i2]:=buf;    
end;
1
Mobile Software Engineer
Эксперт С++
5365 / 1584 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
28.02.2012, 20:23 5
Цитата Сообщение от [WRG
;2536638]Ev[G]eN, первый элемент массива необязательно имеет четное значение
Цитата Сообщение от ReD-1994 Посмотреть сообщение
Поменять местами значение первого четного элемента
я невнимательно прочел...прошу прощения
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2012, 20:23
Помогаю со студенческими работами здесь

Поиск первого четного элемента массива
Две задачи есть: 1. Слои пирамиды перенумерованы сверху вниз, начиная с 1. Каждый слой...

Дан массив состоящий N (> 1) целых чисел. Найти среднее значение первого и последнего элемента массива
Дан массив состоящий N (> 1) целых чисел. Найти среднее значение первого и последнего элемента...

Вставить 0 после первого четного элемента массива
вставить 0 после первого четного элемента. Обязательно использовать как минимум одну процедуру и...

Найти номер первого четного элемента массива.
Помогите с решением или блок-схемой плиз!!!! Заранее благодарен. Ввести одномерный массив A ,...


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

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

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