一开始 res用了double导致错误(输出格式与精度问题)
C++ 代码
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=1e5+10;
int a[N],n;
void solve()
{
sort(a+1,a+n+1);
int x;//货仓位置
if(n%2==1)x=a[(n+1)/2];
else x=a[n/2];
// x=a[n/2+1]; 偶数时n/2和n/2+1都可 所以上面两行可以改成下面这一句
long long res=0;
for(int i=1;i<=n;i++){
res+=fabs(a[i]-x);
}
cout<<res<<"\n";
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
solve();
return 0;
}