Дан целочисленный массив из 30 частей.Элементы массива могут принимать значения -1000

Дан целочисленный массив из 30 частей.
Элементы массива могут принимать значения -1000 до 1000. Нужно вывести среднее арифметическое тех элементов массива,которые по собственному значению меньше заключительного элемента этого массива.

Задать свой вопрос
2 ответа
1. Современное решение

// PascalABC.NET 3.2, сборка 1472 от 08.06.2017
// Внимание! Если программка не работает, обновите версию!

begin
  var a:=ArrRandom(30,-1000,1000); a.Println;
  var s:=a.Where(x-gt;xlt;a.Last);
  if s.Countgt;0 then Writeln('Ср.арифм. отобранных одинаково ',s.Average:0:5)
  else Writeln('Заключительный элемент мал')
end.

Пример
-481 170 -688 158 45 474 739 -704 380 -589 -733 410 -117 157 -541 459 -332 786 -85 -486 414 -271 -364 -96 -961 -338 -142 871 -278 691
Ср.арифм. отобранных равно -174.57692

2. Так обычно учат на школьной информатике

const
  n=30;
var
  a:array[1..n] of integer;
  i,s,k:integer;
begin
  Randomize;
  for i:=1 to n do begin
    a[i]:=Random(2001)-1000;
    Write(a[i],' ')
    end;
  s:=0;
  k:=0;
  for i:=1 to n-1 do
    if a[i]lt;a[n] then begin
      s:=s+a[i];
      k:=k+1
      end;
  Writeln;
  if kgt;0 then Writeln('Ср.арифм. отобранных одинаково ',s/k:0:5)
  else Writeln('Заключительный элемент мал')
end.

Пример
279 397 -770 -405 -731 122 538 239 -298 -727 952 -191 -868 695 529 -147 -845 713 -193 -333 631 552 -355 -690 243 428 -366 -119 -811 140
Ср.арифм. отобранных одинаково -454.52941
include lt;iostreamgt;
include lt;iomanipgt;
include lt;ctimegt;

int main()

    setlocale(LC_ALL, "RUSSIAN");
    const int N = 30;
    int a = 0, count = 0;
    int arr[N];
    srand(time(NULL));
    std::cout lt;lt; "Массив: " lt;lt; std::endl;
    for (int i = 0; i lt; N; i++)
    
        arr[i] = rand() % 2000 - 1000;
        std::cout lt;lt; std::setw(5) lt;lt; arr[i];
    
    for (int i = 0; i lt; N; i++)
        if (arr[N] gt; arr[i])
        
            a += arr[i];
            count++;
        
    std::cout lt;lt; std::endl;
    if (count == 0)
        std::cout lt;lt; "Нет частей удовлетворяющих условию" lt;lt; std::endl;
    else
    
        a /= count;
        std::cout lt;lt; "Среднее арифметическое частей массива,которые по своему значению меньше последнего элемента этого массива: " lt;lt; a lt;lt; std::endl;
    
    system("pause");



, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт