如何在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", &n);
do {
scanf_s("%d", &A[i]);
avg += (double)A[i] / n;
} while (++i < n);
printf("\n%f\n", avg);
for (i = 1; i < n; i++) {
if (fabs(A[k] - avg) > fabs(A[i]) - avg) {
k = i;
}
}
printf("%d", A[k]);
return 0;
}发布于 2021-04-16 17:36:13
在if语句中,将fabs(A[i]) - avg替换为fabs(A[i] - avg)以获得绝对差异。
https://stackoverflow.com/questions/67122715
复制相似问题