这道题通过了,但是对数据类型有一些不理解
  • 板块P1223 排队接水
  • 楼主鹏程
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/10/20 23:13
  • 上次更新2023/11/2 12:21:32
查看原帖
这道题通过了,但是对数据类型有一些不理解
80818
鹏程楼主2023/10/20 23:13

这道题开始得54分,代码如下:

#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct js{
	long long id,t;
}data[1005];
bool cmp(js a,js b){
	return a.t<b.t;
}
int main(){
	long long n;
	cin>>n;
	for(long long i=1;i<=n;i++){
		cin>>data[i].t;
		data[i].id=i;
	}
	stable_sort(data+1,data+n+1,cmp);
	for(long long i=1;i<=n;i++){
		cout<<data[i].id<<" ";
	}
	float sum=0;
	for(long long i=n-1;i>=1;i--){
		sum+=data[n-i].t*i;
	}
	cout<<endl;
	cout<<fixed<<setprecision(2)<<sum/n;
}

我检查数据,发现只有平均时间有问题,最后发现只需要把float sum=0;改为double sum=0;就满分了。

请问这是float和double精度不同导致的结果不同么?求大佬解答。

2023/10/20 23:13
加载中...