坑:
- 搞清数组范围,边界。不行直接取1-n
- vector.end() 不可取
#include<iostream>
#include<vector>
#include<iomanip>
using namespace std;
int main()
{
int n; cin >> n;
vector<int>nums;
for (int i = 0; i < n; i++)
{
int num; cin >> num;
nums.push_back(num);
}
int max, min;
int len = nums.size();
max = min = *nums.begin();
if (*nums.begin() > *(nums.end() - 1))//大-》小
min = *(nums.end() - 1);
else //小-》大
max = *(nums.end() - 1);
cout << max << " ";
if (nums.size() % 2 == 1)//isOdd 5 /2=2
cout << nums[len/2] << " ";
else //isEven
{
int mid = (nums[len/2 -1] + nums[len/2]) / 2;
double tmp = (nums[len / 2 -1] + nums[len / 2 ]) / 2.0;
if ((nums[len / 2 - 1] + nums[len / 2]) % 2 == 1)
cout << fixed << setprecision(1) << tmp << " ";
else cout << mid << " ";
}
cout << min << endl;
return 0;
}