【问题标题】:Get confused by for loop with srand对带有 srand 的 for 循环感到困惑
【发布时间】:2020-12-11 20:02:09
【问题描述】:

我尝试打印出所有的随机数。

而且应该有 100000 行。

但是当我数线时,只有 9000 行。

我很困惑为什么会有一些缺失的行。

希望有人可以帮助我。

    srand(114);
    double b=0;
    for(int i = 0;i<1000;i++){
            for(int j =0 ;j<10;j++){
                for(int k=0;k<10;k++){
                    b=double(rand()/(RAND_MAX+1.0));
                    cout<<b<<endl;
                }
            }
        } 

【问题讨论】:

  • 我运行它并将输出重定向到一个文件。 100000 行。
  • 如果是windows,你可以在你的程序运行所在的cmd.exe窗口增加回滚缓冲区。

标签: c++ loops random srand


【解决方案1】:

你是如何计算行数得到 9000 的?

下面是您的确切代码,其中添加了计数器变量以验证循环运行 100000 次,因此这可能只是您控制台上的显示问题。

https://onlinegdb.com/rkUJLJJXD

【讨论】:

  • 我使用 std::cin.get();并将所有行复制到剪贴板,发现只有 9000 行。
  • 您要手动将行复制到剪贴板?
  • 如果您手动复制行,很可能是显示器没有显示您的全部输出。由于 100000 行相当多,有时输出控制台会限制自己,只显示一定数量。检查我上面链接的代码。这是你的确切代码,它计数到 100000,所以你的代码不是问题。
  • 是的,这是手动操作。听起来这只是您的控制台限制了输出显示。没什么好担心的。
猜你喜欢
  • 2016-07-13
  • 2017-05-03
  • 1970-01-01
  • 2018-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多