Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 1
1

Поменять местами первый и минимальный элементы массива

18.01.2017, 20:49. Показов 3513. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как поменять местами первый и минимальный элементы массива? (если элементов с минимальным значением несколько, в обмене должен участвовать последний из них).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2017, 20:49
Ответы с готовыми решениями:

Поменять местами первый и минимальный элементы массива
Добрый вечер, не могу доделать программу по информатике, посмотрите пожалуйста. Задача: Поменять...

Поменять местами максимальный и минимальный элементы массива
Массив случайных целых чисел складывается из 30 элементов,Узнать максимальный и минимальный элемент...

Поменять местами максимальный и минимальный элементы массива
Имеется массив целых чисел размером N (задается константой). Заполнить его случайными целыми...

Найти максимальный и минимальный элементы массива D и поменять их местами
Найти максимальный и минимальный элементы массива D и поменять их местами. Имя массива и его...

2
botsik
262 / 262 / 140
Регистрация: 05.06.2016
Сообщений: 1,247
Записей в блоге: 1
18.01.2017, 21:20 2
Лучший ответ Сообщение было отмечено WednesdayAddams как решение

Решение

WednesdayAddams,
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var a:array [1..5] of integer=(9,4,3,1,1); //массив чисел
i,min,buf:integer;
begin
for i:=1 to 5 do write(a[i]:2); //вывод массива
min:=1; //индекс минимального элемента
for i:=5 downto 2 do if a[min]>a[i] then min:=i; //поиск индекса элемента с минимальным значением 
if i<>1 then //если первый элемент НЕ минимальный
begin
buf:=a[1]; //замена
a[1]:=a[min];
a[min]:=buf;
end;
writeln;
for i:=1 to 5 do write(a[i]:2); //вывод измененного массива
end.
0
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
19.01.2017, 06:54 3
cfbogd, следующий кусок вашей программы
Код
begin
buf:=a[1]; //замена
a[1]:=a[min];
a[min]:=buf;
end;
можно заменить одним оператором:
Код
swap(a[1],a[min]);
А вместо:
Код
for i:=1 to 5 do write(a[i]:2);
написать:
Код
WriteLn(a);
Если же массив определить как динамический:
Код
var a := arr(9,4,3,1,1);
то программа уменьшится в два раза по количеству строк:
Pascal
1
2
3
4
5
6
7
begin
  var a := arr(9,4,3,1,1); //массив чисел
  WriteLn(a); //вывод массива
  if a.IndexMin > 0 then //если первый элемент НЕ минимальный
    swap(a[0],a[a.IndexMin]);
  WriteLn(a); //вывод измененного массива
end.
… А уж на сколько она уменьшилась по количеству кода!
0
19.01.2017, 06:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2017, 06:54
Помогаю со студенческими работами здесь

Найти максимальный и минимальный элементы данного массива и поменять их местами
Дан двумерный массив размерностью N*M(N и M вводятся с клавиатуры).Найти максимальный и минимальный...

В массиве поменять местами минимальный и последний элементы
1. В массиве x(n) поменять местами ми- нимальный и последний элементы. 2. Элементы одномерного...

В массиве поменять местами минимальный и максимальный элементы
17. В массиве поменять местами минимальный и максимальный элементы.

Поменять местами минимальный и максимальный элементы матрицы
3) Поменять местами минимальный и максимальный элементы матрицы


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru