彩票计划(上升顺序,不重复等)
Lottery program (Ascending order, non-repeating etc)
我很难做彩票。我最近开始编程,所以我对此不太了解。因此,这个人应该能够并选择他想要多少排的数字。然后,应以升序顺序和不重复在该行中出现1-35之间的7个随机数(可以再次出现在下一行中)。我正在使用rand/srand来制作"随机"数字。
任何帮助都很好!提前致谢!:)
这就是代码的atm。
void randNr(int[]);
int main()
{
int rad;
string svar, igen;
setlocale(LC_ALL, "");
cout << "Hur många rader vill du ha? Välj ett tal mellan 1-12." << endl; //How many rows do you want?
cin >> rad;
for (int a = 1; a < 7; a++)
{
if (rad < 0 || rad > 12)
{
if (cin.fail())
{
system("CLS");
cin.clear();
}
cout << "Fel inmatning, Välj ett av alternativen. n" << endl; //Wrong answer, choose one of the alternatives
cout << "För att börja om tryck 'j'." << endl; //'j' to start over
cout << "För att avsluta tryck 'n'." << endl; //'n' to quit program
cin >> svar;
if (svar == "j" || svar == "J" || svar == "Ja" || svar == "ja")
{
system("CLS");
return main();
}
else if (svar == "n" || svar == "N" || svar == "Nej" || svar == "nej")
{
return 0;
}
else if (svar != "j" && svar != "J" && svar != "Ja" || svar != "n" && svar != "N" && svar != "nej" && svar != "Nej")
{
system("CLS");
}
}
}
randNr(tal);
while (true) {
cout << "nFör att köra igen: tryck 'j'" << endl; //To play again press 'j'
cout << "För att avsluta : tryck 'n'" << endl; // To quit, press 'n'
cin >> igen;
if (igen == "j" || igen == "J" || igen =="Ja" || igen == "ja")
{
system("CLS");
return main();
}
else if(igen == "n" || igen == "N" || igen == "nej" || igen == "Nej" )
{
system("CLS");
return 0;
}
else
{
system("CLS");
cout << "Fel inmatning, välj ett av alternativen" << endl; //Wrong answer, choose on of the alternatives
}
}
system("pause");
return 0;
}
void randNr(int tal[])
{
//DONT KNOW HOW TO DO THE ASCENDING / NON REPEATING PART
//---------------------HERE---------------------------
}
此代码旨在具有启发性并帮助您的学习,它并不是其他评论所述的最佳选择:
void randNr(int tal[]) {
int count = 0;
while (count < SIZE) {
int number = rand() % 35 + 1; // range [1, 35]
int index = 0;
// find where the number should be placed
while (index < count && tal[index] < number) {
index++;
}
// if it is not a duplicate, shift other numbers up, then add it
if (tal[index] != number) {
for (int i = count; i >= index; i--)
tal[i + 1] = tal[i];
tal[index] = number;
count++;
}
}
}
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 函数调用中参数的顺序重要吗
- 为什么不;名字在地图上是按顺序排列的吗
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 数到第n个楼梯的路(顺序无关紧要)
- 优先顺序:智能指针和类析构函数
- 在循环中按顺序遍历成员变量
- 独立读取-修改-写入顺序
- QML按钮点击功能执行顺序
- C++中数据类型修饰符的顺序
- 当比特(而不是字节)的顺序至关重要时的持久性
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 通过选项卡的文本设置QTabWidget顺序
- c++11评估顺序(未定义的行为)
- 如何在C++中递归地按相反顺序打印集合
- 给定顺序中的事件处理
- 具有包含其他对象的类的对象创建顺序
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 遍历顺序由 std::文件系统directory_iterator给出
- 彩票计划(上升顺序,不重复等)