样例都过不了,求调
查看原帖
样例都过不了,求调
1268524
DX3906_ourstar楼主2024/7/10 11:28

排队顺序的结果没有问题,计算平均时间的结果是错误的

#include<iostream>
#include<algorithm>
using namespace std;

int n;
double tmp;//存时间总和 

struct person{//people[i]表示第i个人的时间、序号写成结构体方便看 
	double t;
	int id;
}people[1005];

bool cmp(person a,person b){//将时间作为排序依据 
	return a.t < b.t;
}

int main(){
    cin>>n;
    for(int i = 0;i < n;i ++){
    	cin>>people[i].t;
    	tmp += people[i].t;//记录时间总和
    	people[i].id = i + 1;//people从0开始存,因此要相对应正确的序号,id就应该为i + 1 
	}
	sort(people,people + n,cmp);
	for(int i = 0;i < n;i ++){
		cout<<people[i].id<<" ";//输出排队顺序,即排序后每个人的序号  
	}
	printf("\n%.2lf",tmp / double(n));//输出平均时长 
    return 0;
}
2024/7/10 11:28
加载中...