Дана линейная таблица А[1: N], N <=50. Каждый элемент A[i] с четным индексом заменить...

0 голосов
45 просмотров

Дана линейная таблица А[1: N], N <=50. Каждый элемент A[i] с четным индексом заменить значением max(A[1], A[2],…,A[i]), а с нечетным - min(A[1], A[2],…,A[i]).


Информатика (407 баллов) | 45 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

#include

int GetMax(int n, int* A);
int GetMin(int n, int* A);

int main() {
  std::cout << "N=";<br>  int N, i;
  std::cin >> N;
  int A[N+1];

  // заполнение массива
  for(i = 1; i <= N; i++) {<br>    std::cout << "A[" << i << "]=";<br>    std::cin >> A[i];
  }

  // чётные индексы
  for(i = 1; i <= N; i++) {<br>    if (i % 2 == 0) {
      A[i] = GetMax(i, A);
    }
  }

  // нечётные индексы
  for(i = 1; i <= N; i++) {<br>    if (i % 2 == 1) {
      A[i] = GetMin(i, A);
    }
  }

  std::cout << "Результат:" << '\n';<br>  for(i = 1; i <= N; i++)<br>    std::cout << A[i] << ' ';<br>
  return 0;
}

int GetMax(int n, int* A) {
  int max = A[1];
  for(int i = 1; i <= n; i++)<br>    if (A[i] > max)
      max = A[i];
  return max;
}

int GetMin(int n, int* A) {
  int min = A[1];
  for(int i = 1; i <= n; i++)<br>    if (A[i] < min)
      min = A[i];
  return min;
}

(7.2k баллов)
0 голосов

Const n=10;
var a:array[1..n] of integer;
max,min,i:integer;
begin
Randomize;
for i:=1 to n do begin
 a[i]:=random(51);
 write(a[i],' ');
 end;
writeln;
max:=a[1];
min:=a[1];
for i:=1 to n do
 begin
 if a[i]>max then max:=a[i];
 if a[i] if i mod 2 = 1 then a[i]:=min else a[i]:=max;
 end;
for i:=1 to n do write(a[i],' ');
writeln;
end.

Пример:
31 35 3 5 26 46 9 31 30 11
31 35 3 35 3 46 3 46 3 46

(194k баллов)