给出n个数字,请你求出在给出的这n个数字当中,最大的数字与次大的数字之差,最大的数字与次小的数字之差,次大的数字与次小的数字之差,次大的数字与最小的数字之差.
易错点
1 1 2 3 4 4
次小不是a[1]了
次大也不是a[n-2]了
#include<bits/stdc++.h>
using namespace std;
int a[110] = {};
int main(){
int n;
cin>>n;
for(int i = 0; i < n; i++)
cin>>a[i];
sort(a,a+n);
int amax1,amin1,amax2,amin2;
amax1 = a[n-1];
amax2 = a[n-1];
amin1 = a[0];
amin2 = a[0];
for(int i = n-2; i >= 0; i--){
if(a[i] != amax2){
amax2 = a[i];
break;
}
}
for(int i = 1; i <= n - 1; i++){
if(a[i] != amin2){
amin2 = a[i];
break;
}
}
cout<<amax1 - amax2<<" "<<amax1 - amin2<<" ";
cout<<amax2 - amin2<<" "<<amax2 - amin1<<endl;
return 0;
}