Статистика
Всего в нашей базе более 4 327 660 вопросов и 6 445 973 ответов!

у масиві А(n) з неповторюваними елементами вибрати два найближчі за значенням елементи, менші з них помістити на перше місце, а більші-на друге місце в

10-11 класс

масиві;інші елементи масива А не змінювати.

YuliaBir 17 сент. 2016 г., 17:11:15 (7 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Nikolenkoalenko
17 сент. 2016 г., 18:15:56 (7 лет назад)

const
  k = 100;

var
  a: array[1..k] of integer;
  i, j, n, n1, n2, in1, in2, d, d1: integer;

begin
  writeln('Введите количество элементов в массиве: ');
  read(n);
  writeln('Введите исходный массив: ');
  for i := 1 to n do read(a[i]);
  {Найдем элементы с минимальной разностью}
  d := 1000;
  for i := 1 to n - 1 do
    for j := i + 1 to n do
    begin
      d1 := abs(a[j] - a[i]);
      if d1 < d then
      begin
        n1 := a[i]; in1 := i;
        n2 := a[j]; in2 := j;
        d := d1
      end
    end;
  {Теперь элемент, который должен быть помещен на первое место,
   находтся в n1, а его номер - в in1. n2 и in2 - значение и
   номер в массиве второго элемента.
   Будем сдвигать элементы массива к концу.
   Элементы с номером, большим in2, уже на своем месте.
   Элементы с номерами от in1+1 до in2-1 сдвигаем на 1 к концу.
   Затем элементы с номерами от 1 до in1-1 сдвигаем на 2 к концу.
   Останется поместить n1 на первое место и n2 на второе}
  for i := in2 - 1 downto in1 + 1 do a[i + 1] := a[i];
  for i := in1 - 1 downto 1 do a[i + 2] := a[i];
  a[1] := n1;
  a[2] := n2;
  write('Результирующий массив: ');
  for i := 1 to n do write(a[i], ' ');
  writeln
end.

Тестовое решение:

Введите количество элементов в массиве:
10
Введите исходный массив:
8 11 23 15 21 17 32 16 1 5
Результирующий массив: 15 16 8 11 23 21 17 32 1 5



+ 0 -
Novichek96
17 сент. 2016 г., 19:16:36 (7 лет назад)

#include<iostream>
#include<locale>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
  setlocale(LC_ALL, "Russian");

Ответить

Другие вопросы из категории

помогите!!!!((((

Определить значение переменной y после выполнения следующих элементов программы:
x:=0;
y:=5;
repeat
y:=2*y;
x:=x+y
until y>5;

пожалуйста помогите переставить 3 и 5 столбец и 3 и 5 строку в массиве ...вроде правильно написала но выходит ошибка

program mas55;
const n=5;
type st=array[1..n] of real;
var i,j,d:integer;
b:st;
a:array[1..n] of st;
begin
for i:=1 to n do
for j:=1 to n do if j=3 then a[i,j]:=sqr(i)*j else a[i,j]:=2;
for i:=1 to n do
begin
for j:=1 to n do write (a[i,j]:6);
writeln
end;
writeln;
b:=a[3];
a[3]:=a[4];
a[4]:=b;
for i:=1 to n do
begin
for j:=1 to n do write (a[i,j]:6);
writeln;
for i:=1 to n do
begin
d:=a[i,3];
a[i,3]:=a[i,5];
a[i,5]:=d
end;
for i:=1 to n do
begin
for j:=1 to n do write (a[i,j]:6);
writeln
end;
writeln
end
end.

Читайте также

Помогите пожалуйста. Нужно решить в паскале.

Дано масив А[1..n]. Скласти програму підрахунку суми всіх елементів, що знаходяться між елементами А[1] і А[n].

Одновимірний масив Х(12) елементів дійсних

чисел. Знайти найбільший додатний елемент і найменший від’ємний елементи масиву.





Вы находитесь на странице вопроса "у масиві А(n) з неповторюваними елементами вибрати два найближчі за значенням елементи, менші з них помістити на перше місце, а більші-на друге місце в", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.