选择最大的三个就可以了。
#include<bits/stdc++.h> using namespace std; int a[55]; int s=0; int find(int n) { int x=a[1]; int y=1; for(int i=2;i<=n;i++) { if(a[i]>x) { x=a[i]; y=i; } } s+=a[y]; a[y]=-1; //cout<<y<<endl; } int main() { int n; while(cin>>n) { s=0; for(int i=1;i<=n;i++) scanf("%d",&a[i]); find(n);find(n);find(n); for(int i=1;i<=n;i++) if(a[i]==-1)cout<<i<<' '; cout<<s<<endl; } }