Николай Веселуха
Высший разум
(367859)
3 года назад
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#define BUFFER 10
int main(void) {
double box[BUFFER];
int i;
double sm = 0.;
double avg;
double value;
double x;
double dx;
int index;
srand((unsigned)time(NULL));
for (i = 0; i < BUFFER; ++i) box[i] = (rand() % 201 - 100) + (double)(rand() % 10) / 10;
for (i = 0; i < BUFFER; ++i) printf("%8.1lf", box[i]);
puts("");
for (i = 0; i < BUFFER; ++i) sm += box[i];
avg = sm / BUFFER;
dx = fabs(box[0] - avg);
x = dx;
value = box[0];
index = 0;
for (i = 1; i < BUFFER; ++i) {
dx = fabs(box[i] - avg);
if (dx < x) {
x = dx;
value = box[i];
index = i;
}
}
printf("Average: %.3lf\nValue: %.1lf\nIndex: %i\n", avg, value, index);
system("pause > nul");
return 0;
}
Юрий Копнин
Мыслитель
(8098)
3 года назад
Сперва находим среднее арифметическое, складываем все элементы массива и делим на количество элементов в массиве. Далее снова идем по всем элементам и считаем разность между каждым элементом и средним арифметическим. Наиболее близким будет тот элемент, разность с которым окажется наименьшая, т. е. ближе к нулю.