在這段代碼中,我想調用一個循環內的函數,在每次迭代中提供一個新的隨機數。但是,它不起作用,輸出總是相同的,如「2 2 2 2」或「5 5 5 5」。出了什麼問題?爲什麼函數不能在每個循環中提供新的值?
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int vertex (int x) {
srand(time(NULL));
x = rand()%10+1;
}
int main()
{
const int size =4;
int a;
int arr[size];
for (int i=1;i<=size;i++){
arr[i] = vertex(a) ;
cout << arr[i] << " ";
}
return 0;
}
它不會工作。在'int vertex(int x)'中,新的x值在離開函數時被丟棄。 – Avt
它甚至不會編譯,因爲你的'int vertex(int x)'不返回任何東西。 – Avt
啊,所以它是..我必須承認,自從我觸及C++以來已經有一段時間了。將更新我的答案。 – Seidr