使用C randint生成四个数字
generating four digits by using the C++ randint
我在研究Stroustrup的书籍"编程:使用C 的原理和练习"时使用标头文件std_lib_facilities.h
。我在早期的章节中。在第5章的练习13中,我熟悉了randint()功能,以制作"我的牛和公牛"。游戏(上一个练习)更有趣,但是当我使用此功能时,它有时会产生更多的数字,而不是我迭代循环的次数。
来自std_lib_facilities.h
:
inline int randint(int max) { return rand()%max; }
这是我的代码:
vector<int> answer;
for (int i = 0; i<4; ++i) {
int answer_digit=randint(10);
answer.push_back(answer_digit);
}
for (int i = 0; i < 4; ++i) std::cout << answer[i];
_getch();
std::cout << std::endl;
例如,在我的情况下,它给出了第一个数字的63109,然后给出4706,然后是5423,然后再提供7个四位数的数字,然后又是一个五位数的,即94410。为什么会发生这种情况?这是库中函数的错误,还是我自己代码中的一个愚蠢的错误?谢谢。
(我知道我可以使用种子得到更现实的随机,但这与我的问题无关(至少,我的猜测!)。
要生成4位而无需重复的数字,随机洗牌10 0 -9并取下前四个。
要随机洗牌,将第一个与0到N-1上的随机索引交换(可能与自身交换)在1上交换第二个,将第二个交换为N-1,第2至N-1中的第三个,2至N-1中的第三个和很快。如果领导0不允许,特殊情况是第一个数字。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- C++通过数字比较两个数字
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 找到四个 10 的所有表达式
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- 如果我不知道每个列表中有多少个数字,我如何将给定数量的数字列表作为输入?
- 获取 2 个数字之间的差异百分比
- 在 txt 文件中显示前两个数字的程序
- 形成一个斐波那契三角形,使得每个数字是上面左对角线或右对角线上两个数字的总和
- 如何在 c++ 中存储具有值的四个参数的元组
- 在C++中编程,将 3 个数字发送到一个函数,然后计算这 3 个数字的平均函数
- C++ 函数,用于查找数组中四个最小最大元素的总和不起作用
- 两个数字的对称配对功能
- 将最多 50 位数字的 2 个数字相乘
- 我想将四个字节合并为一个数字以进行串行传输
- 使用C randint生成四个数字
- 缩短条件以检查x是否不是四个数字中的任何一个
- 条件反射为四种情况下的两个数字的符号
- 我将如何操作导入的 .text 文件以在屏幕上仅显示员工 SNN 的最后四个数字?