Анна гутлина
?>

Задан целочисленный массив a найти наибольший элемент массива и указать его индекс. (программа python)

Информатика

Ответы

alexkortyukov
Так как необходимо найти не только максимальный элемент, но и его индекс, то лучше искать индекс, так как по нему всегда можно получить значение из массива.

from random import random
N = 50
arr = [0] * N
mx = 0
for i in range(N):
    arr[i] = random() * 100
    print("%.2f" % arr[i], end='; ')
    if arr[i] > arr[mx]:
        mx = i
print("\narr[%d] = %.2f" % (mx, arr[mx]))
aleksvasin
Если нужно достать минимальное число шаров чтобы среди них точно оказалось по одному каждого цвета, то
Допустим, первые 5 шаров - синие (всегда рассматривается худший случай)
Допустим, следующие 3 шара - красные 
Тогда все оставшиеся шары будут желтыми, и достаточно достать любой из них 
5+3+1=9 
ответ: 9 шаров. 
 P.S. Если достать меньшее кол-во, то возможна ситуация, при которой будут не все шары. Например, если достать 8 шаров, возможно что будут только синие и красные. Но если достать 9, то в любом случае среди них будет каждый цвет. Хотя, возможна ситуация, в которой при наличии 3 шаров будут присутствовать шары каждого цвета. 
Katkova
Const
  nm = 20;
  nn = 20;

var
  a: array[1..nm, 1..nn] of integer;
  i, j, m, n, k, imin, imax, nmin, nmax: integer;

begin
  Write('Введите число строк и столбцов матрицы: ');
  Readln(m, n);
  Randomize;
  Writeln('Исходная матрица');
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := Random(101) - 50;
      Write(a[i, j]:4)
    end;
    Writeln
  end;
  if m = n then begin
    imax := 1; imin := 1; nmax := a[1, n]; nmin := nmax;
    for i := 2 to n do
    begin
      k := a[i, n - i + 1];
      if nmax < k then begin imax := i; nmax := k end;
      if nmin > k then begin imin := i; nmin := k end
    end;
    a[imax, n - imax + 1] := nmin; a[imin, n - imin + 1] := nmax
  end
  else begin
    i := 2;
    while i <= m do
    begin
      for j := 1 to n do a[i, j] := 0;
      i := i + 2
    end;
  end;
  Writeln('Матрица-результат');
  for i := 1 to m do
  begin
    for j := 1 to n do Write(a[i, j]:4);
    Writeln
  end;
  Writeln
end.

Тестовые решения:
Введите число строк и столбцов матрицы: 5 5
Исходная матрица
  29  40 -24  34  16
  32 -45   9 -10  27
 -45  30 -50 -24 -50
  15  33   3  12  36
  46 -46   0   2  43
Матрица-результат
  29  40 -24  34  16
  32 -45   9 -10  27
 -45  30  46 -24 -50
  15  33   3  12  36
 -50 -46   0   2  43

Введите число строк и столбцов матрицы: 5 6
Исходная матрица
  27   3 -18  36 -48  22
 -27 -19   4 -36 -50  -9
 -48 -25   9 -36  10  26
  10 -22 -15 -40 -42  38
 -31  32  41 -17 -26  22
Матрица-результат
  27   3 -18  36 -48  22
   0   0   0   0   0   0
 -48 -25   9 -36  10  26
   0   0   0   0   0   0
 -31  32  41 -17 -26  22

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Задан целочисленный массив a найти наибольший элемент массива и указать его индекс. (программа python)
Ваше имя (никнейм)*
Email*
Комментарий*