gpt4 book ai didi

c++ - 为什么我得到的数字超出了我传递的范围?

转载 作者:太空宇宙 更新时间:2023-11-04 15:04:46 24 4
gpt4 key购买 nike

我是 c++ 的新手,我不明白为什么数字超出范围。我
评论了我以为你是范围的初始位置

#include <vector>
#include <iostream>
#include <random>
#include <time.h>

using namespace std;
using std::vector;

int main()
{

vector<int> deck;
default_random_engine eng(time(0));

我以为这里是我指定随机数范围的地方,但我却得到了超出该范围的数字

 uniform_int_distribution<int> dis(0, 51);

int pos1;
int pos2;
int num1;
int num2;
int i;
int n;
int m;

for (i = 1; i < 53; i++)
{
deck.push_back(i);

}

pos1 = dis(eng);
pos2 = dis(eng);

num1 = deck.at(pos1);
num2 = deck.at(pos2);


for (n = 0; n < 100; n++)
{
pos1 = dis(eng);
pos2 = dis(eng);

cout << pos1 << "\n" << pos2;

}




}

最佳答案

看起来问题出在最后一行cout << pos1 << "\n" << pos2; (这里你忘了添加 << "\n" )。因此,如果您的程序打印四个数字(例如 22、23、24、25),您将看到以下文本:

22
2324
25

所以数字 2324 将超出您的范围,但实际上它是两个数字的串联。

关于c++ - 为什么我得到的数字超出了我传递的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216675/

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