【发布时间】:2020-01-18 17:41:07
【问题描述】:
我在重新做一个旧项目时正在学习一点 c++,发现对用户制作的列表进行排序并使其远离在列表中选择相同的数字时遇到了一些困难,例如,我选择了 1 的范围到第n个,那么我要选择多少个这些数字,例如我选择1到25并从中选择15,我的代码将输出“12 3 5 11 15 5 4 4 8 15 6 6 2 13 2” .打印方式乱序并且一些数字重复,我想找到一种方法来按顺序打印它们而不重复。我有点迷路了!
我试过使用list::sort(),但没有任何结果。
编辑:完整代码:
int selectedNumbers, rounds, totalNumbers;
list<int> numbersList {totalNumbers};
int Calc(int totalNumbers, int selectedNumbers)
{
for (int j = 1; j <= totalNumbers; j++)
{
numbersList.push_back(j);
while (j++ <= selectedNumbers)
{
int randomList = (rand() % selectedNumbers) + 1;
cout << randomList << " ";
}
}
}
int main()
{
cout << "How many numbers on the total? ";
cin >> totalNumbers;
cout << "Number of rounds: ";
cin >> rounds;
cout << "How many selected numbers?";
cin >> selectedNumbers;
for (int i = 1; i <= rounds; i++)
{
Calc(totalNumbers, selectedNumbers);
cout << "\n";
}
return 0;
}
当前输出:
总共有多少个数字? 25
选择了多少个号码? 15
12 3 5 11 15 5 4 4 8 15 6 6 2 13 2
12 11 3 13 7 7 10 3 4 8 8 7 12 9 6
3 7 12 4 10 8 3 5 11 10 9 7 3 4 4
15 7 2 9 14 3 15 8 13 13 5 9 7 5 14
2 6 6 13 4 2 11 3 5 14 12 1 6 10 11
【问题讨论】:
-
1) 请详细说明实际问题是什么。目前,即使经过多次阅读尝试,也不清楚第二个数字的含义是什么。由于您只是生成一些数字,因此请根据它打印这些数字并丢弃它们。 2) “我试过使用 list::sort() 但没有任何结果。” 显然,你得到了 some 结果。请详细说明为什么它不适合您的需求。
-
"我试过使用 list::sort() 但没有任何结果。"你得到了什么结果?
-
实际代码有点长,当我把它粘贴到这里时,stackoverflow 抛出了格式。问题是我为数字的范围提供了一些输入,然后我想选择多少个,然后以排序方式打印它们而不重复它们
-
最好的方法是列出一个包含所有数字
1..25的列表。然后随机打乱列表。选择顶部的15项目,然后对其进行排序然后打印。 -
你能把代码粘贴到stackoverflow吗?修复警告。如果你不能,就忽略它们。我们可以为您修复格式。没有代码很难理解你想要什么......