所以我正在嘗試創建一個函式 randBetween 來生成亂數,然后用這些數字填充陣列
當我嘗試將陳述句移入函式時,我錯過了一些問題
#include <iostream>
#include <ctime>
using namespace std;
void fillArray(int arr[], int size, int min, int max);
int randBetween(int max, int min);
void printArray(int arr[], int size);
const int size = 10;
int main()
{
int arr[size];
int min = -100;
int max = 100;
srand(time(NULL));
fillArray(arr, size, min, max);
printArray(arr, size);
}
int randBetween(int max, int min)
{
int num = (rand() % (max - min 1)) min;
return num;
}
void fillArray(int arr[], int size, int min, int max)
{
for (int i = 0; i < size; i )
{
int num = 0;
randBetween(min, max);
//num = ( rand () % (max - min 1)) min;
arr[i] = num;
}
}
void printArray(int arr[], int size)
{
for (int count = 0; count < size; count )
{
cout << arr[count] << "\n";
}
}
如果我不注釋掉 //num = ( rand () % (max - min 1)) min; 它在沒有功能的情況下完美運行,但是我必須在功能中使用它,我無法弄清楚我做錯了什么;我試圖改變引數,改變位置,但沒有任何幫助
uj5u.com熱心網友回復:
替換num = ( rand () % (max - min 1)) min;為randBetween(min, max);缺少一些重要的東西:您沒有num在第二種情況下設定變數。盡管您確實在函式num內部進行了設定randBetween,但這實際上不是同一個變數;它是在 inside 定義的randBetween,所以它在外面是不可訪問的,并且不會影響numinside fillArray。num您可以通過使用此行設定外部來解決此問題:
num = randBetween(min, max);
而不僅僅是randBetween(min, max);.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/467252.html
下一篇:匿名遞回函式
