排队顺序的结果没有问题,计算平均时间的结果是错误的
#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;
}