题解 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
#include <iostream>
#include <vector>
using namespace std;
/*明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,
把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。
数据范围: 1≤n≤1000 ,输入的数字大小满足1≤val≤500*/
int main()
{
int n;
cin >> n;
vector<int> vec;
int x;
while ((n--) != 0)
{
cin >> x;
vec.push_back(x);
}
//先进行排序 从小到大排序
for (int i = 0; i < vec.size(); i++)
{
for (int j = i; j < vec.size(); j++)
{
if (vec[i]>vec[j])
{
int temp = vec[j];
vec[j] = vec[i];
vec[i] = temp;
}
}
}
//遍历查找一样的元素
for (int i = 0; i < vec.size(); i++)
{
for (int j = i+1; j < vec.size(); j++)
{
//如果找到一样的 那就需要把后一个数删除掉 后面的自动向前补齐
if (vec[i] == vec[j])
{
vec.erase(vec.begin()+j); //删除开始第j个元素 删除容器指定位置元素
i--;
}
}
}
//将容器里的值进行输出
for (auto it : vec)
{
cout << it << endl;
}
system("pause");
return 0;
}

查看20道真题和解析