Вопрос задан 27.07.2023 в 03:24. Предмет Информатика. Спрашивает Маркинцевичь Юля.

Даны целочисленная матрица A[1:n, 1:m] и целочисленный массив B[1:k]. Удалить путем сдвига все

строки матрицы, содержащие хотя бы один элемент, равный максимальному элементу массива. const lmax = 100; type mass = array [1..lmax] of integer; matr = array[1..lmax,1..lmax] of integer; var A: matr; B: mass; i, j, n, m, k, max: integer; flag: boolean; begin repeat writeln('Введите количество строк и столбцов матрицы n и m'); readln(n, m); until (n>0) and (m>0); repeat writeln ('Введите колличество элементов массива k'); readln(k); until k>0; for i:=1 to n do for j:=1 to m do begin write('A[',i,',',j,']:='); readln(A[i,j]) end; for i:=1 to k do begin write('B[',i,']:='); readln(B[k]); end; flag:=false; max:=-maxint; for j:=1 to k do if B[j]>max then max:=B[j]; for i:=1 to n do for j:=1 to m do begin if flag=true then begin A[n,m]:=A[n+1,m]; n:=n-1; flag:=false; end else if A[n,m]=max then flag:=true; end; writeln('Новая матрица: '); for i:=1 to n do begin for j:=1 to m do write(a[i,j],' '); writeln; end; end. Не могу найти, что именно не так, задание программа выполняет не верно
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Бакытбекова Нуршырак.

Замените кусок кода или скачайте прикрепленный файл



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Похоже, у вас есть несколько ошибок в вашем коде. Я опишу проблемы и предоставлю исправленный код:

  1. Ошибка в чтении массива B: В вашем коде вы ошибочно используете индекс k, когда читаете элементы массива B. Вы должны использовать переменную i, чтобы правильно заполнить массив B.

  2. Условие сравнения в цикле проверки элементов матрицы: В вашем коде, когда вы проверяете элементы матрицы для удаления строк, вы сравниваете элементы с максимальным значением, но вы должны сравнивать их с максимальным значением массива B.

  3. Неправильное обращение к элементу матрицы: В коде для сдвига строк вы обращаетесь к элементу A[n, m], но вы должны использовать A[i, j].

  4. Условие для проверки максимального элемента в массиве B: Ваш код для нахождения максимального элемента массива B неправильно устанавливает переменную max равной -maxint, что может привести к неверным результатам. Вы должны сначала установить max равным первому элементу массива B и затем сравнивать с остальными элементами.

Исправленный код:

pascal
const lmax = 100; type mass = array [1..lmax] of integer; matr = array[1..lmax, 1..lmax] of integer; var A: matr; B: mass; i, j, n, m, k, max: integer; flag: boolean; begin repeat writeln('Введите количество строк и столбцов матрицы n и m'); readln(n, m); until (n > 0) and (m > 0); repeat writeln('Введите колличество элементов массива k'); readln(k); until k > 0; for i := 1 to n do for j := 1 to m do begin write('A[', i, ',', j, ']: '); readln(A[i, j]) end; for i := 1 to k do begin write('B[', i, ']: '); readln(B[i]); end; max := B[1]; // Инициализируем max первым элементом массива B for i := 1 to k do if B[i] > max then max := B[i]; // Находим максимальный элемент в массиве B flag := false; for i := 1 to n do for j := 1 to m do begin if flag then begin A[i, j] := A[i + 1, j]; end else if A[i, j] = max then begin flag := true; break; // Добавляем прерывание цикла, чтобы избежать повторных сдвигов в текущей строке end; end; if flag then n := n - 1; // Уменьшаем количество строк, если был найден элемент, равный максимальному элементу B writeln('Новая матрица: '); for i := 1 to n do begin for j := 1 to m do write(A[i, j], ' '); writeln; end; end.

Теперь код должен работать правильно и выполнять задание по удалению строк с элементами, равными максимальному элементу массива B.

0 0

Похожие вопросы

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

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

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