Вопрос задан 27.04.2019 в 20:47. Предмет Информатика. Спрашивает Шевченко Маша.

Pascal ABC Напишите программу, которая находит три наименьших элемента массива и переставляет их в

начало массива. Остальные элементы должны следовать далее в том же порядке. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . Выходные данные Программа должна вывести элементы полученного массива в одной строке, разделив их пробелами. Примеры входные данные 6 6 2 1 5 3 4 выходные данные 1 2 3 6 5 4
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Турчина Ксюша.
Var
 a: array [1..10000] of integer;
 i,j,k,m,n:integer;
begin
 read(n);
 for i := 1 to n do
   read(a[i]);
 for i := 1 to 3 do
   begin
   m := a[i];
   k := i;
   for j := i+1 to n do
     if a[j] < m then
      begin
      m := a[j];
      k := j
      end;
   for j := k downto i+1 do
     a[j] := a[j-1];
   a[i] := m
   end;
 for i := 1 to n do
  write(a[i],' ')
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа нахождения и перестановки трех наименьших элементов массива в начало

```pascal program ThreeSmallestElements;

var arr: array of Integer; i, j, temp, n: Integer;

begin // Ввод размера массива ReadLn(n);

// Инициализация массива SetLength(arr, n);

// Ввод элементов массива for i := 0 to n - 1 do Read(arr[i]);

// Сортировка массива по возрастанию for i := 0 to n - 2 do for j := 0 to n - 2 - i do if arr[j] > arr[j + 1] then begin temp := arr[j]; arr[j] := arr[j + 1]; arr[j + 1] := temp; end;

// Перестановка трех наименьших элементов в начало массива for i := 0 to 2 do begin temp := arr[i]; arr[i] := arr[i + 3]; arr[i + 3] := temp; end;

// Вывод элементов массива for i := 0 to n - 1 do Write(arr[i], ' '); end. ```

Объяснение программы

1. Программа начинается с объявления переменных и массива `arr`, который будет хранить элементы массива. 2. Затем происходит ввод размера массива `n` с помощью `ReadLn(n)`. 3. Массив `arr` инициализируется с помощью `SetLength(arr, n)`, чтобы задать ему нужный размер. 4. С помощью цикла `for` и оператора `Read(arr[i])` происходит ввод элементов массива. 5. Далее следует сортировка массива `arr` по возрастанию с помощью алгоритма пузырьковой сортировки. 6. После сортировки массива, первые три элемента массива переставляются в начало массива с помощью цикла `for` и временной переменной `temp`. 7. Наконец, с помощью цикла `for` и оператора `Write(arr[i], ' ')` происходит вывод элементов массива через пробел.

Пример работы программы

Входные данные: ``` 6 6 2 1 5 3 4 ```

Выходные данные: ``` 1 2 3 6 5 4 ```

Объяснение работы программы

1. Входные данные указывают, что размер массива `n` равен 6, а элементы массива равны 6, 2, 1, 5, 3, 4. 2. После сортировки массива по возрастанию получаем: 1, 2, 3, 4, 5, 6. 3. Затем первые три элемента массива (1, 2, 3) переставляются в начало массива, получаем: 1, 2, 3, 4, 5, 6. 4. Выводим элементы массива через пробел: 1 2 3 4 5 6.

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

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос