冒泡AC
#include<bits/stdc++.h>
using namespace std;
int n;
double ans;
struct node{
int number;
int count;
};
node a[1145];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].count;
a[i].number=i;
}
for(int i=n;i>1;--i){
for(int j=1;j<i;++j){
if(a[j].count>a[j+1].count){
swap(a[j].count,a[j+1].count);
swap(a[j].number,a[j+1].number);
}
}
}
for(int i=1;i<=n;i++){
cout<<a[i].number<<" ";
ans+=a[i].count*(n-i);
}
printf("\n%.2lf",ans/n);
return 0;
}
快排错一个点
#include<bits/stdc++.h>
using namespace std;
int n;
struct node{
int number;
int count;
}a[1145];
bool cmp(node &a,node &b){
return a.count<b.count;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].count;
a[i].number=i;
}
double ans=0;
sort(a,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].number<<" ";
ans+=a[i].count*(n-i);
}
printf("\n%.2lf",ans/n);
}