#include <string>
#include<iostream>
#include <algorithm>
void test3()
{
/*明明想在学校中请一些同学一起做一项问卷调查,
为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),
对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。
然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”
与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。*/
int i = 0, j = 0;
const int len = 100; // 数组的长度
cout << "本次共生成随机数:" << len << endl;
int arr[len];
for (int i = 0; i < len; i++)
{
arr[i] = (rand() % (1001));
}
sort(arr, arr + len); // 排序
// 去重
while (i < len) {
if (arr[i] == arr[++j]) { // 遇到重复元素,将其值置为-1
arr[j] = -1; // -1是标记值,可以换成其他值,但不能和要排序的数字冲突
}
else {
i = j;
}
}
// 输出
for (i = 0; i < len; i++)
if (arr[i] != -1) // 只输出非标记元素
cout << arr[i] << endl;
}
int main()
{
test3();
return 0;
}
c++ 对随机数组进行去重和排序输出
最新推荐文章于 2022-12-01 21:11:40 发布