hdu 4520 小Q系列故事——最佳裁判 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4520

    

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <math.h>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int n, i, besti;
 9     double p[30], sor[30], final, sum, min;
10     while (cin >> n && n)
11     {
12         besti = sum = 0;
13         for (i = 0; i < n; i++)
14         {
15             scanf("%lf", &p[i]);
16             sor[i] = p[i];
17             sum += p[i];
18         }
19         sort(p, p+n);
20         final = (sum - p[0] - p[n-1]) / (n-2);
21         min = fabs(final - sor[0]);   
22         for (i = 1; i < n; i++)
23         {
24             if (min > fabs(final-sor[i]))
25             {
26                 min = fabs(final-sor[i]);
27                 besti = i;
28             }
29         }
30         printf("%d\n", besti+1);
31     }
32     return 0;
33 }

besti 没有赋初值,wa了无数次,一开始还以为不能用第一个数赋予min;还有一种想法是,听别人说,fabs会丢失精度.其实,最关键的是赋初值!!!!!

原文地址:https://www.cnblogs.com/windysai/p/3083198.html