Есть ответ 👍

Program qq; const n=5; var a: array[1..n] of integer; i,imax: integer; begin writeln('исходный массив: '); for i: =1 to n do begin a[i]: =random(100)+50; write(a[i]: 4); end; imax: =1; {считаем,что певый-минимальный} for i: =2 to n do {проверяем все остальные} if a[1]> a[imax] then {новый минимальный} imax: =1; {запомнить i} writeln; {перейти на новую строку} writeln('минимальный элемент a[',imax,']=', a[imax]); end. исправить чтобы получилось минимальный массив

206
314
Посмотреть ответы 2

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


Надеюсь это то что надо const       n = 5; var       a: array[1..n] of integer;       i, imin: integer; begin       writeln('исходный массив: ');       for i : = 1 to n do       begin               a[i] : = random(100) - 50;               write(a[i]: 4);       end;       imin : = 1; {инциируем первым элементом}       for i : = 2 to n do {проверяем все остальные}               if a[i] < a[imin] then {новый минимальный}                       imin : = i; {запомнить i}       writeln; {перейти на новую строку}       writeln('минимальный элемент a[', imin, ']=', a[imin]); end.

0. ты никак не задаёшь n в программе. тебе стоит хотя бы прочитать его: read(n); 1. что написано внутри условия цикла while? если по твоему решению, должно быть "i < = n" 2. делители будут "прилипать" друг к другу, выводи так: write(i, ' '); 3. твой счётчик i не увеличивается, программа зациклится. после if'а вставь i : = i + 1; итоговый код: var n, i: integer; begin read(n); i : = 1; while (i < = n) do begin if n mod i = 0 then write(i, ' '); i : = i + 1; end; writeln('n'); end. есть, кстати, альтернативный способ поиска делителей. выводить их он будет, правда, не в порядке возрастания. var n, i: integer; begin read(n); i : = 1; while (i * i < n) do begin if n mod i = 0 then write(i, ' ', n div i, ' '); i : = i + 1; end; if i * i = n then write(i, ' '); writeln('n'); end.

Популярно: Информатика