В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
fara30
fara30
16.03.2022 20:26 •  Информатика

C++ Напишите программу, которая ищет медиану массива – элемент, делящий его на две равные части: в одной находятся элементы, которые не меньше медианы, в другой -– не больше медианы.

Есть далеко неполный код этой задачи, я пытался разными решить, но всё тщетно

Вот код:

void qSort( int nStart, int nEnd )

{

int L, R, c, X;

if ( nStart >= nEnd ) return;

L = nStart; R = nEnd;

X = A[(L+R)/2];

while ( L X ) R --;

if ( L <= R ) {

c = A[L]; A[L] = A[R]; A[R] = c;

L ++; R --;

}

}

qSort ( nStart, R );
qSort ( L, nEnd );

}

Показать ответ
Ответ:
kluk12
kluk12
21.03.2021 07:09
1. Путь решения

Поскольку среднее всех введенных чисел нельзя найти, пока не будет закончен ввод этих чисел, а затем каждое число нужно будет сравнивать с этим средним, введенные числа придется где-то хранить. Например, в массиве длиной 100 (в условии сказано, что количество чисел "до 100").
Считаем, что описан массив a[1..100] и в нем находятся n≤100 целых чисел (можно и нецелых, но раз ничего не сказано в условии, мы вправе решить это сами).
Тогда среднее определится по формуле:
\displaystyle m= \frac{1}{n} \sum_{i=1}^na_i
а сумму мы умеем считать, накапливая значение в цикле со счетчиком, дающем проход по всем элементам массива.
Искомое количество чисел, меньших среднего - это тоже сумма, найти которую позволит еще один цикл, но в нем уже будет анализ условия.
\displaystyle k=\sum_{i=1}^na_i, \ a_i\ \textless \ m

2. Программа на языке Pascal

const
  nn=100;
var
  i,n,k,s:integer;
  m:real;
  a:array[1..nn] of integer;
begin
  Write('Количество чисел равно '); Read(n);
  Writeln('Введите числа:');
  s:=0;
  for i:=1 to n do begin Read(a[i]); s:=s+a[i] end;
  m:=s/n;
  k:=0;
  for i:=1 to n do
    if a[i]<m then Inc(k);
  Writeln('Количество чисел, превышающих среднее значение, равно ',k)
end.

3. Пример работы программы

Количество чисел равно 10
Введите числа:
6 -4 11 -7 5 7 0 3 5 -2
Количество чисел, превышающих среднее значение, равно 4
0,0(0 оценок)
Ответ:
Rollov35
Rollov35
23.11.2020 17:48
Китайские летописи сообщают, что бумага была изобретена в 105 году н. э. Цай Лунем (см. четыре великих изобретения) [1]. Однако в 1957 году в пещере Баоця северной провинции Китая Шаньси обнаружена гробница, где были найдены обрывки листов бумаги. Бумагу исследовали и установили, что она была изготовлена во II веке до нашей эры. До Цай Луня бумагу в Китае делали из пеньки, а ещё раньше из шёлка, который изготавливали из бракованных коконов шелкопряда. Цай Лунь растолок волокна шелковицы, древесную золу, тряпки и пеньку. Всё это он смешал с водой и получившуюся массу выложил на форму (деревянная рама и сито из бамбука) . После сушки на солнце, он эту массу разгладил с камней. В результате получились прочные листы бумаги. После изобретения Цай Луня, процесс производства бумаги стал быстро совершенствоваться. Стали добавлять для повышения прочности крахмал, клей, естественные красители и т. д.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота