【问题标题】:How do I specify the amount of random numbers in my code in C++如何在 C++ 中的代码中指定随机数的数量
【发布时间】:2021-01-06 13:23:47
【问题描述】:

我尝试阅读其他问题以找到我的问题的答案,但我厌倦了看到使用不同编码语言的答案。我想更改随机错误代码中的数字数量。我对此真的很陌生,所以请不要粗鲁的 cmets。

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;
 
int main () {
   int i,j[3];
 
   
   srand( (unsigned)time( NULL ) );

我将 j 的数组设置为 3,这样我就可以尝试获得最多 3 个数字。

for( i = 0; i < 1; i++ ) {
      
      j[3] = rand();
      cout <<"Error code: " << j << endl;
   }

   return 0;
}

这里是错误出现的地方,代码的输出只发送变量地址而不是随机数。在继续我的项目之前,我真的需要帮助。请帮忙。

编辑:变量地址为“0x7ffc9b46ed5c”

【问题讨论】:

    标签: c++ c++11 random


    【解决方案1】:

    我可以假设您想将一个大小为 3 的数组设置为随机数。

    我将 j 的数组设置为 3

    j[3] = rand();
    

    您没有这样做,您将数组 j 中的第 4 个元素设置为随机数,这恰好超出范围并调用未定义的行为。

    cout <<"Error code: " << j << endl;
    

    输出数组j 中第一个元素的地址。不是整个数组。

    【讨论】:

    • 那么我该如何正确地做到这一点呢?这就是我要找的。​​span>
    • 听起来并不粗鲁,但您似乎缺乏循环和数组等基本 C++ 语法。你应该先查阅教程或初学者的书来学习它们。 This is a very good and maintained list你可以看看。但是,for (int i = 0; i &lt; 3; i++) j[i] = rand(); 应该做你想做的事。
    • 更改您的 for 循环,以便您可以遍历数组的元素。然后对于每个元素i,调用 rand()。您可以使用数组迭代器或带有计数器的传统 for 循环。
    • 我对这些东西很陌生,所以谢谢!我可能会关闭这个问题。几分钟前我发现我做错了什么。
    • @SkyyCivil 祝你好运:-)
    【解决方案2】:

    我会怎么做:

    #include <iostream>
    #include <ctime>
    using namespace std;
    
    int main()
    {
      srand(time(NULL));
      int j[3];
      for (int i = 0; i < 3; ++i)
        j[i] = rand(); //sets every index of the array to rand()
      cout << "Error code: ";
      for (int i = 0; i < 3; ++i)
        cout << j[i] << '\n'; //outputs all values from the array
    
      return 0;
    }
    

    当您通过int j[3] 声明一个大小为3 的数组时,您可以通过j[0] 引用第一个值,j[1] 引用第二个值,j[2] 引用第三个值。如果要显示数组中的每个值,可以使用普通的 for 循环(使用 j[i])或基于范围的 for 循环:

    for(int& i : j)
        cout<<i; //this loop will display every component from your array
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      相关资源
      最近更新 更多