各位大佬看看我的代码错哪了,我用的nlogn的希尔排序,然后把数组1~n-1个元素赋值到b数组里,在用高精变量fs累加,最后用printf保留2位小数输出,可是和样例输出的不太一样,这是我的代码:
#include<bits/stdc++.h>
using namespace std;
void xrpx(int a[],int len){
for(int bc=len/2;bc>0;bc/=2){
for(int i=1;i<len;i++){
int min=a[i];
int mini=i;
while(mini-bc>=0&&a[mini-bc]>min){
a[mini]=a[mini-bc];
mini-=bc;
}
a[mini]=min;
}
}
}
int main(){
int len;
cin>>len;
int a[len];
for(int i=0;i<len;i++){
cin>>a[i];
}
xrpx(a,len);
int b[len-2];
for(int i=1;i<len-1;i++){
b[i]=a[i];
}
double fs=0;
int n=sizeof(b)/sizeof(b[1]);
for(int i=1;i<n;++i){
fs+=b[i];
}
printf("%.2f",fs/3);
return 0;
}
麻烦大佬们跑一下,给我尽快的答复,谢谢!!!