profile
Опубликовано 5 лет назад по предмету Информатика от Jiffs

Ввести одномерный массив A , вывести его. Найти произведение
элементов стоящих слева и справа от минимального элемента массива.
Разделить на найденное произведение минимум и максимум. Изменённый
массив вывести.
Вот начало:

program ABC;
const Nmass=100;
var A:array[1..Nmass] of integer;
N,i,k,max,min: byte;
buf:integer;
begin
cls;
//ручной ввод массива
writeLn('Введите число элементов в массиве A');
readLn(N);
writeLn('Вводим элементы массива A:');
for i:=1 to N do
begin
write('A[',i,']=');
readLn(A[i]);
end;
//вывод массива до измененния
writeLn('Исходный массив A:');
for i:=1 to N do
write(A[i]:5);
writeLn;

  1. Ответ
    Ответ дан GuitarMan
    Прежде всего, тот код, который вы написали - чепуха! Сейчас вам напишу свой. Еще, на счет последнего, мы массив ни коем образом не изменяем, просто выполняем операции с его элементами, поэтому, вывести "измененный" массив не получится. 
    var mass: Array[0..10] of integer;
        max_elem, min_elem, i, min_index, multOnTheLeft, multOnTheRight: integer;
    begin
    for i := 1 to 10 do begin
      write('Введите ', i, ' элемент массива: ' );
      readln(mass[i]);
    end;
    for i := 1 to 10 do writeln('mass[', i, '] = ', mass[i]);

    min_elem := mass[1];
    for i := 1 to 10 do begin
      if mass[i] < min_elem then begin
      min_elem := mass[i];
      min_index := i;
      end;
    end;
    writeln('Минимальное значение: ', min_elem, ', индекс элемента: ', min_index );
    multOnTheLeft := 1; multOnTheRight := 1;
    for i := 1 to min_index do multOnTheLeft := multOnTheLeft * mass[i];
    for i := min_index to 10 do multOnTheRight := multOnTheRight * mass[i];
    writeln('Произведение слева: ', multOnTheLeft, ', справа: ', multOnTheRight);
    end.

    Единственное, что я не понимаю, так это "разделить на произведение минимум и максимум". Объясните ясней

Самые новые вопросы