Как реализовать алгоритм, который будет выводить в консоль задаваемое количество максимумов и минимумов пользователем ? на C
Дан набор вещественных чисел, результатов некоторого измерения. Исключив статистические выбросы (например, по два наибольших и наименьших значения), найти математическое ожидание и дисперсию. Сравнить с мат. ожиданием и дисперсией, вычисленным по первоначальной выборке (без исключения выбросов).
`
#include <stdio.h>
#include <conio.h>
#include<math.h>
#include<locale.h>
#include<math.h>
#include<iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "RUS");
float* x;
int n;
double sum0 = 0;
double sum1 = 0;
double disp;
float expv;
printf("Введите количество планируемых измерений: ");
scanf_s("%d", &n);
printf("===================================================");
printf("\nВведите ваши измерения: ");
x = new float[n];
for (int i = 0; i < n; i++) {
cin >> x[i];
sum0 += x[i];
}
expv = sum0 / n;
printf("Математическое ожидание: %lg\n", expv);
for (int j = 0; j < n; j++) {
sum1 += pow((x[j] - expv), 2);
}
disp = sum1 / n;
printf("Дисперсия: %lg", disp);
}
`
Ответы (1 шт):
Автор решения: Opus
→ Ссылка
void delete_min(float* arr, int& n) {
// Нахождение минимумов
int i, iMin = 0;
for (i = 1; i < n; ++i)
if (arr[i] < arr[iMin])
iMin = i;
// Удаление минимумов
for (i = iMin; i < n - 1; ++i)
arr[i] = arr[i + 1];
--n;
}
void delete_max(float* arr, int& n) {
// Нахождение максимумов
int i, iMax = 0;
for (i = 1; i < n; ++i)
if (arr[i] > arr[iMax])
iMax = i;
// Удаление максимумов
for (i = iMax; i < n - 1; ++i)
arr[i] = arr[i + 1];
--n;
}