
Вопрос задан 14.02.2021 в 01:23.
Предмет Информатика.
Спрашивает Рубчинский Дима.
Перестановка элементов массива Массив A(10) состоит из чисел 7, 8 и 9. Переставить элементы массива
таким образом, чтобы сначала стояли все числа 8, потом – 7, а в конце – 9. (Примечание: Используется один массив, последний блок в программе должен быть: for i:=1 to 10 do write(a[i], ' '); ) Формат входных данных: В единственной строке входного файла 10 чисел разделенных пробелами. Формат выходных данных: 10 чисел разделенные пробелами.

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

Отвечает Хаскина Вероника.
Var a:array[1..10]of integer;
i,n7,n8,n9:integer;
begin
for i:=1 to 10 do begin
read(a[i]);
if a[i] = 7 then n7+=1;
if a[i] = 8 then n8+=1;
if a[i] = 9 then n9+=1;
end;
for i:=1 to 10 do begin
if i<=n8 then a[i]:=8;
if (i>n8) and (i<=(n7+n8)) then a[i]:=7;
if i>(n7+n8) then a[i]:=9;
end;
for i:=1 to 10 do write(a[i],' ');
end.
Тестовое решение:
9 7 8 9 7 8 9 7 8 9
8 8 8 7 7 7 9 9 9 9
i,n7,n8,n9:integer;
begin
for i:=1 to 10 do begin
read(a[i]);
if a[i] = 7 then n7+=1;
if a[i] = 8 then n8+=1;
if a[i] = 9 then n9+=1;
end;
for i:=1 to 10 do begin
if i<=n8 then a[i]:=8;
if (i>n8) and (i<=(n7+n8)) then a[i]:=7;
if i>(n7+n8) then a[i]:=9;
end;
for i:=1 to 10 do write(a[i],' ');
end.
Тестовое решение:
9 7 8 9 7 8 9 7 8 9
8 8 8 7 7 7 9 9 9 9



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи можно использовать следующий алгоритм:
- Создать массив A с 10 элементами.
- Считать 10 чисел из входной строки и заполнить массив A.
- Создать переменные i и j, инициализировать их нулями.
- Начать цикл по i от 0 до 9.
- Если A[i] равно 8, увеличить j на 1 и поменять местами A[i] и A[j].
- Завершить цикл.
- Установить i в j+1.
- Начать цикл по i от j+1 до 9.
- Если A[i] равно 7, увеличить j на 1 и поменять местами A[i] и A[j].
- Завершить цикл.
- Установить i в j+1.
- Начать цикл по i от j+1 до 9.
- Если A[i] равно 9, увеличить j на 1 и поменять местами A[i] и A[j].
- Завершить цикл.
- Вывести элементы массива A, разделенные пробелами.
Вот пример реализации данного алгоритма на языке Pascal:
pascalvar A: array[1..10] of Integer; i, j, temp: Integer; begin for i := 1 to 10 do Read(A[i]); j := 0; for i := 1 to 10 do begin if A[i] = 8 then begin Inc(j); temp := A[i]; A[i] := A[j]; A[j] := temp; end; end; i := j + 1; for i := i to 10 do begin if A[i] = 7 then begin Inc(j); temp := A[i]; A[i] := A[j]; A[j] := temp; end; end; i := j + 1; for i := i to 10 do begin if A[i] = 9 then begin Inc(j); temp := A[i]; A[i] := A[j]; A[j] := temp; end; end; for i := 1 to 10 do Write(A[i], ' '); end.
После запуска программы и ввода 10 чисел, она выведет переставленные элементы массива A в требуемом порядке.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili