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

100 баллов!! Помогите с задачкой
Ввести массив А(n). Найти его min и max. Все элементы между минимумом и максимумом возвести в квадрат. Массив отпечатать

  1. Ответ
    Ответ дан petyaGavrikov
    const n=10;
    var a:array[1..n] of integer;
    max,min,imax,imin,i:integer;
    begin
    Randomize;
    for i:=1 to n do begin
     a[i]:=random(51);
     write(a[i],' ');
     end;
    writeln;
    max:=a[1]; imax:=1;
    min:=a[1]; imin:=1;
    for i:=2 to n do
     begin
     if a[i]>max then begin max:=a[i]; imax:=i; end;
     if a[i]<min then begin min:=a[i]; imin:=i; end;
     end;
    writeln('max = ',max,'  min = ',min);
    if imax<imin
     then for i:=imax+1 to imin-1 do a[i]:=a[i]*a[i]
     else for i:=imin+1 to imax-1 do a[i]:=a[i]*a[i];
    for i:=1 to n do write(a[i],' ');
    writeln;
    end.

    Пример:
    26 40 11 16 40 30 16 40 3 25 
    max = 40  min = 3
    26 40 121 256 1600 900 256 1600 3 25 
  2. Ответ
    Ответ дан MaxikMK
    Сколько элементов массива?
    Допустим, 10.

    Var
    A: array [1..10] of integer;
    i, min, max, imin, imax: integer;
    Begin
    for i:=1 to 10 do
    read(A[i]);
    min:=A[1]; max:=A[1];
    for i:=1 to 10 do
    begin
    if A[i] > max then
    begin
    max:=A[i];
    imax:=i;
    end;
    if A[i] < min then
    begin
    min:=A[i];
    imin:=i;
    end;
    end;
    if imin<imax then
    for i:=(imin+1) to (imax-1) do
    A[i]:=sqr(A[i])
    else
    for i:=(imax+1) to (imin-1) do
    A[i]:=sqr(A[i]);
    writeln('Максимальное значение: ', max, ', минимальное: ', min);
    for i:=1 to 10 do
    write(A[i], ', ');
    end.

    Немного пояснений:
    по условию, только элементы между минимумом и максимумом возводятся в квадрат, отсюда эти imax-1 и imin+1.

    Пример действия:
    1
    2
    4
    999
    765
    624
    0
    83
    64
    63
    Максимальное значение: 999, минимальное: 0
    1, 2, 4, 999, 585225, 389376, 0, 83, 64, 63,
Самые новые вопросы