麻烦大佬们看一下代码错哪了,不符合样例的输出
查看原帖
麻烦大佬们看一下代码错哪了,不符合样例的输出
328303
幸运小崽楼主2020/8/3 15:54

各位大佬看看我的代码错哪了,我用的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;
}

麻烦大佬们跑一下,给我尽快的答复,谢谢!!!

2020/8/3 15:54
加载中...