【问题标题】:How to i get my Array to output its random generated values from 0 - 99如何让我的数组从 0 到 99 输出其随机生成的值
【发布时间】:2022-11-13 21:44:00
【问题描述】:

我想创建一个名为 fillArray 的函数来为数组设置随机值。 然后我想让函数输出所有值,但我一直得到高于 99 的值。

这是我到目前为止所写的:

#include <ctime>
#include <iostream>

using namespace std;

void fillArray(){
    srand(time(NULL));

    const unsigned int sizeOfArray = 10; // this sets the array to the constant size of 10
    int numberArray[sizeOfArray];  //this sets the array to the size of 'sizeOfArray' which is 10

    for(int i = 0; i < sizeOfArray; i++)
    {
      numberArray[i] = rand() % 100;
      cout << numberArray[i] << endl;
    }
}


int main (){
    void fillArray(int a[10], int randNum);
    cout << numberArray[0] << " , " << numberArray[1] << " , " << numberArray[2] << " , " << numberArray[3] << " , " << numberArray[4] << " , " << numberArray[5] << " , " << numberArray[6] << " , " << numberArray[7] << " , " << numberArray[8] << " , " << numberArray[9] << '\n';

}

我知道名称 numberArray 尚未在主函数中声明,但只是想知道该怎么做。

【问题讨论】:

  • 使用void fillArray(int a[10], int randNum); 你实际上并没有称呼功能。你宣布功能。它与您之前声明的 void fillArray() 函数不同。或许您需要刷新教科书中有关函数以及如何调用它们的章节?
  • 而不是cout &lt;&lt; numberArray[0] &lt;&lt; " , " &lt;&lt; numberArray[1] ...,为什么不使用循环呢?
  • 这个won't compile

标签: c++ clion


【解决方案1】:

所以,你的错误很简单:

您已经在 main 函数中声明了一个函数,如下所示:

int main()
{
  void fillArray(int a[10], int random);
}

但应该是

int main()
{
  fillArray(int a[10], int random);
}

哪个正在调用fillArray 函数 还有一些我想补充的,

而不是 fillArray 什么都不带,它应该带一个这样的数组

  template<auto Size>
  void fillArray(int (&arr)[Size])
  {
    // Implemenatation
  }

而且,它不应该采用函数可以在函数体中执行的随机数。

当您打印数组时,您应该使用循环或专用函数来执行此操作:

template<auto Size>
auto PrintArray(int (&arr)[Size])
{
  for(int i = 0; i < Size; i++)
  {
    std::cout << arr[i] << ", ";
  }
  std::cout << "
";
}

因此,您的最终代码将类似于以下内容:

#include <ctime>
#include <iostream>

using namespace std;

template<auto Size>
void fillArray(int (&numberArray)[Size]){
    srand(time(NULL));

    for(int i = 0; i < Size; i++)
    {
      numberArray[i] = rand() % 100;
    }
}

template<auto Size>
auto PrintArray(int (&arr)[Size])
{
  for(int i = 0; i < Size; i++)
  {
    std::cout << arr[i] << ", ";
  }
  std::cout << "
";
}

int main (){
    int numberArray[10];
    void fillArray<10>(numberArray);
    PrintArray<10>(numberArray);

}

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 2014-11-04
    • 2017-05-28
    相关资源
    最近更新 更多