题目如下:
数字计算
描述
给出n个数字,请你求出在给出的这n个数字当中,最大的数字与次大的数字之差,最大的数字与次小的数字之差,次大的数字与次小的数字之差,次大的数字与最小的数字之差.
输入
给出n个数字,请你求出在给出的这n个数字当中,最大的数字与次大的数字之差,最大的数字与次小的数字之差,次大的数字与次小的数字之差,次大的数字与最小的数字之差.
输出
输出四个整数,表示答案.
输入样例 1
5
4 1 3 2 3
输出样例 1
1 2 1 2
输入样例 2
7
6 7 2 1 9 3 2
输出样例 2
2 7 5 6
提示
样例1说明:最大的数字为4,次大的数字为3,次小的数字为2,最小的数字为1,所以得出差值即可.
样例2说明:最大的数字为9,次大的数字为7,次小的数字为2,最 小的数字为1,所以得出差值即可.
备注:
对于30%的数据,保证n≤8
对于60%的数据,保证n≤16
对于100%的数据,保证n≤100
对于所有数据,保证每个数字小于等于100且不同数字的个数大于4
我的代码(40分):
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=n;i>=1;i--){
for(int j=1;j<i;j++){
if(a[j]<a[j+1])
swap(a[j],a[j+1]);
}
}
cout<<a[1]-a[2]<<" "<<a[1]-a[n-1]<<" "<<a[2]-a[n-1]<<" "<<a[2]-a[n];
}
大佬求调!!!