#arrays #c
#массивы #c
Вопрос:
Как я могу найти элемент, ближайший к среднему значению в массиве c. Это проходит большинство тестов, однако, когда я набираю последовательность 4-1-5-7-2, он выводит 2 вместо 5.
#include <stdio.h>
#include <math.h>
int main() {
int A[50], n, k = 0, i = 0;
double avg = 0;
scanf_s("%d", amp;n);
do {
scanf_s("%d", amp;A[i]);
avg = (double)A[i] / n;
} while ( i < n);
printf("n%fn", avg);
for (i = 1; i < n; i ) {
if (fabs(A[k] - avg) > fabs(A[i]) - avg) {
k = i;
}
}
printf("%d", A[k]);
return 0;
}
Ответ №1:
В вашем операторе if замените fabs(A[i]) - avg
на fabs(A[i] - avg)
, чтобы получить абсолютную разницу.