Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
druger
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 57
#1

Максимальный среди нечётных поменять местами со 2 элементом массива

09.10.2011, 12:13. Просмотров 236. Ответов 1
Метки нет (Все метки)

Вот я написал такую прогу: в одномерном массиве, состоящем из N элементов: максимальный среди нечётных поменять местами со 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
program p4;
uses crt;
const n=5;
var a:array [1..n] of integer;
i,max,m:integer;
begin
clrscr;
for i:=1 to n do
 begin
 write('vvedite 5 elementov massiva');
 read(a[i]);
 a[1]:=max;
 end;
for i:=2 to n do
  begin
  if (a[i]mod 2=1)and (a[i]>max)
  then max:=a[i]
  else writeln('v massive libo 1 nechetnii element libo ih net');
  m:=max;
  max:=a[2];
  a[2]:=m;
  end;
writeln(a[i]);
readln
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 12:13
Ответы с готовыми решениями:

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

Найти максимальный элемент и поменять его местами с первым элементом массива
Дан двумерный массив, который содержит не более 10 строк и не более 10...

Найти максимальный элемент массива и поменять его местами с первым элементом
Дан одномерный массив, который содержит не более 40 вещественных чисел. Найти...

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

Найти максимальный элемент массива и поменять его местами с последним элементом.
Дан одномерный массив, который содержит не более 100 вещественных чисел. ...

1
Alex1OPS
101 / 100 / 36
Регистрация: 14.09.2010
Сообщений: 223
09.10.2011, 13:03 #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
uses crt;
const n=10;
var a:array [1..n] of integer;
    i,max,imax:integer;
BEGIN
  randomize;
  max:=0;
  writeln('Искомый массив');
  for i:=1 to n do
  begin
    a[i]:=random(100)-50;
    write(a[i],' ');
    if ((a[i] mod 2<>0) and (max=0)) then max:=a[i]
    else
    if ((a[i] mod 2<>0) and (a[i]>max)) then 
    begin
      imax:=i;
      max:=a[i];
    end;
  end;
  a[imax]:=a[2];
  a[2]:=max;
  
  writeln;
  writeln('Конечный массив');
  for i:=1 to n do write(a[i],' ');
  readkey;
END.
Добавлено через 4 минуты
Объяснение такое:
во-первых, некорректно присваивать max значение первого элемента. Вдруг первый элемент окажется чётным и при этом весьма большим.

во-вторых, писать о том,что в массиве одни четные элементы не стоит. программа просто выведет исходный массив.

в-третьих, не стоит менять значение 2 элемента массива с нечетным максимальным в цикле. Вы делаете N лишних действий.

Это по-крупному.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2011, 13:03

Массив. Найти максимальный элемент массива и поменять его местами с первым элементом
Дан массив целых чисел а1,…, аn. Найти максимальный элемент массива и поменять...

Найти максимальный элемент и поменять его местами с первым элементом второго столбца массива
Дан двумерный массив, который содержит не более 30 строк и не более 10...

Матрица D(4,4) Определить максимальный среди положительных, минимальный среди отрицательных и поменять их местами.
Помогите пожалуйста решить программу Задана матрица D(4,4). Определить...


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

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

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