gpt4 book ai didi

c++ - 没有双号

转载 作者:行者123 更新时间:2023-11-28 02:43:54 24 4
gpt4 key购买 nike

我正在制作强力球彩票,其中的数字将按升序进行冒泡排序。快速选择 (QP) 将在 1-56 之间,强力球 (PB) 将在 1-46 之间。我已经处理了那么多,但我在 QP 中创建限制时遇到了麻烦,因此不会有双号。例如 1、5、5、32、55。

是否可以使用 if then else 语句创建该限制?

#include <iostream> 
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <ctime>

using namespace std;

int size;
int arr[5] = {0, 1, 2, 3, 4};
int i=0;
int PowerBall[1] = {0};


int QP()
{
srand(time(NULL));
for (int i=0; i<5; i++) /
arr[i] = rand() % 56 + 1;
return 0;
}

int PB()
{
srand(time(NULL));
for (int i=0; i<5; i++)
PowerBall[i] = rand() % 56 + 1;
return 0;
}

void bubbleSort(int arr[], int size) //bubble sort function
{
bool swapped = true;
int j = 0;
int tmp;
while (swapped)
{
swapped = false;
j++;
for (int i = 0; i < size - j; i++) {
if (arr[i+1] < arr[i]) {
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
swapped = true;
}
}
}
}


void print()
{
for (int i = 0; i < 5; i++)
cout << arr[i] << setw(8);
cout << PowerBall[i] << endl;
}

int main()
{
QP();
bubbleSort(arr, 5);
PB();
print();
system("pause");
return 0;
}

最佳答案

将您的数字放在一个集合中以排除多重性(它们也会自动排序)

int newNum; 
set<int> numSet;

for (int i(0); i < 5; ++i)
{
// calculate a number
while (!numSet.insert(newNum).second)
{
// calculate another number
numSet.insert(newNum);
}
}

请注意,一旦您超过了快速选择集 (56) 的能力,就无法再进行新的插入操作,您将以无限循环结束(您可能需要在此处添加一个检查)

关于c++ - 没有双号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com