#include <algorithm> #include <iostream> #include<cstdio> #include <vector> using namespace std; int main() { int a,b,counter; vector<int> arr; //借用vector的popback函数来完成对最大值的去除 while (cin >> a) { // 注意 while 处理多个 case // cout << a + b << endl; for (int i = 0; i < a; i++) { cin >> b; arr.push_back(b); //数组成型 } b = arr[0]; //默认最大值 counter = 0; //最大值标记 for (int i = 0; i < a; i++) { if(b < arr[i]) { counter = i; //扫描一遍数组,获取最大值和标记 b = arr[i]; } } printf("%d\n",b); if (a == 1) { //处理特殊情况 b = -1; printf("%d\n",b); return 0; } arr[counter] = arr[a-1]; //把最大值交换到末尾 arr.pop_back(); //pop末尾,完成对最大值的去除 sort(arr.begin(),arr.end()); //灵魂一步,排序,对vector的排序需要begin与end两个函数来获取其内存位置 for (int i = 0;i < a - 1; i++) { //完成排序,输出 printf("%d ",arr[i]); } } } // 64 位输出请用 printf("%lld")
使用vector来操作,输入即是push,扫描一遍数组获取最大值,把最大值与末尾的数值交换,pop末尾,排序,输出。