题解 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec; int N; cin >> N; //将所有随机整数输入 for(int i = 0; i < N; i++){ int add_Num; cin >> add_Num; vec.push_back(add_Num); } if (N == 1) cout << vec[0]; //如果N为1,直接输出 else{ //去掉所有重复的数 int counter, tester; for (counter = 0, tester = 0; counter < N-1; counter++){ for(tester = counter + 1; tester < N;){ if(vec[counter] == vec[tester]) { vec.erase(vec.begin() + tester); N--; } else{ tester++; //如果N--生效,tester就不用+1,所以没有写在for的开头 } } } } if (N == 1) cout << vec[0]; //如果去重之后M为1,直接输出 else{ //从小到大排列 int middle, counter1, counter2;//counter1用来表示正被比较的位数,counter2用来遍历 for(counter1 = 0, counter2 = 0; counter1 < N-1; counter1++){ for (counter2 = counter1 + 1; counter2 < N; counter2++){ if (vec[counter1] > vec[counter2]) { middle = vec[counter1]; vec[counter1] = vec[counter2]; vec[counter2] = middle; } } } for (int num : vec) { cout << num << endl; } } }