@[iamecho9](/user/665213) 精度出问题了,帮你改了一下,AC 了:
```cpp
#include<bits/stdc++.h>
using namespace std;
struct student
{
int num;
int time;
};
student stu[1005];
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; ++i)
{
cin >> stu[i].time;
stu[i].num = i;
}
for (int i = 0; i < n - 1; ++i)
for (int j = 1; j < n - i; ++j)
{
if (stu[j].time > stu[j + 1].time)
{
swap(stu[j],stu[j+1]);
}
}
for (int i = 1; i <= n; ++i)
cout << stu[i].num << " ";
double a = 0;
for (int i = 1; i <= n; ++i)
a = (a + stu[i].time*(n-i))*1.0;
a = a*1.0 / double(n*1.0);//加个*1.0 防止精度出问题
cout << endl;
cout << fixed << setprecision(2) << a;
return 0;
}
```
by ssxvngn @ 2022-01-20 22:29:55
@[一个pupil](/user/500205) 谢谢大佬
by iamecho9 @ 2022-01-21 15:34:03
我也遇到这个问题,用Double后AC了,谢谢!
by justin_jiajia @ 2022-06-05 15:44:23