$\color{red}{一个蒟蒻写的题解,不喜勿喷!!}$
题目思路:
很多人上来就会直接这样写:
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
int a[5];
bool comp(int x,int y){
return x < y;
}
signed main(){
cin >> a[1] >> a[2] >> a[3]; //输入
sort(a + 1,a + 3 + 1,comp); //STL快排
cout << a[1] << endl << a[2] << endl << a[3] << endl;
//输出已排序的数组
cout << endl << a[1] << endl << a[2] << endl << a[3];
//输出原始数组
return 0;
}
但是这样是不对的,排序后的数组已经覆盖掉了未排序时候的值,所以根据题目,输出是这样的:
-14
7
21
-14
7
21
那我们该怎么办呢?对,我们可以在排序前将数组备份一下,这样就有排序后的数组和未排序的数组啦
$\color{green}{C++~AC~Code:}$
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
int a[5],b[5];
bool comp(int x,int y){
return x < y;
}
signed main(){
cin >> a[1] >> a[2] >> a[3];
b[1] = a[1];b[2] = a[2];b[3] = a[3]; //备份
sort(b + 1,b + 3 + 1,comp);
cout << b[1] << endl << b[2] << endl << b[3] << endl;
cout << endl << a[1] << endl << a[2] << endl << a[3];
//整齐的输出代码
return 0; //华丽结束~
}
更新记录:
$2022/12/11$ 发布本篇题解
$2022/12/11$ 给C++ AC Code增加了一点点注释
直接用stl更好玩
stl yyds