Предмет: Информатика, автор: kondratenkonel

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

Ответы

Автор ответа: Milton812
0
#include <iostream>
#include <iomanip>
#include <ctime>

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


Автор ответа: Аноним
0
1. Современное решение

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

begin
  var a:=ArrRandom(30,-1000,1000); a.Println;
  var s:=a.Where(x->x<a.Last);
  if s.Count>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]<a[n] then begin
      s:=s+a[i];
      k:=k+1
      end;
  Writeln;
  if k>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
Похожие вопросы
Предмет: Математика, автор: tankixonelove12