开发这个的契机是因为期末论文小组答辩顺序要随机来抽
于是就把它摸出来了
#define _CRT_SECURE_NO_WARNINGS 1
using namespace std;
#include<iostream>
#include<cmath>
#include<string>
#include<ctime>
int m[114514];
int main()
{
int a, b, c;
cin >> c;
srand((unsigned int)time(NULL));
for (int n = 0; n <= c; n++)
{
anymoons:
a = rand() % c + 1;
b = n;
for (; b >= 0; b--)
{
if (m[b] == a)
{
goto anymoons;
}
}
cout << "第" << n + 1 << "组为:" << a << endl;
m[n] = a;
}
return 0;
}
中途遇见的一个比较令人头疼的困难是,循环抽随机数是有可能出现重复的
逐渐摸索之后选择了一个笨方法
把每次随机出的数存入数组,每个数被随机出时先与数组内已有的进行对比
如果不重复的话正常输出,否则再次进行循环,直到出现不重复的数值
一开始跳出循环采用的break,但是break只能跳出最近的循环
所以最后选择了goto
应该还有更好的办法,只不过我想不出来了(笑)
使用方法很简单:键入你希望有多少组进行随机排序,然后就没了😋
Comments NOTHING