#include "stdafx.h"
#include <iostream>
using namespace std;
// ====================
// ==========================
const unsigned int MIN_VALUE = 0;
const unsigned int MAX_VALUE = 4;
const int N = 4;
// ================
// ===================
// Function Prototypes
// ===================
// ========================================
void IntilizeGenerator(unsigned int a[]);
int RandomNumber();
int SumArray(int a[], int& sum);
void Output(int a[], int sum);
// ==============================
// ============
int main() {
int sum;
int num[N];
num[N-1] = RandomNumber();
sum = SumArray(num, sum);
Output(num, sum);
cout << endl;
return 0;
}// Function Main()
// ===================
// ======================================
void IntilizeGenerator(unsigned int a[]) {
srand(a[N]);
}// Function IntilizeGenerator()
// ================================
// =======================
int SumArray(int a[], int& sum) {
sum = 0;
int ii = 0;
while (ii < N) {
sum += a[ii];
ii++;
}
return sum;
}// Function SumArray()
// =======================
// ====================
int RandomNumber() {
return MIN_VALUE + rand() % (MAX_VALUE - MIN_VALUE + 1);
}// Function RandomNumber()
// ===========================
void Output(int a[], int sum) {
cout << "The array contains about " << N << endl;
cout << "The array has these values " << a[N] << endl;
cout << "The sum of these numbers are " << sum << endl;
}// Function Output()
// =====================
所以我是個遇到的問題是,我通過我的randomNumber功能到我的陣列,它不會產生這反過來又會不會把它們加起來的隨機數程序。我仍然試圖理解隨機數字生成器,所以任何意見,將非常感激!數組不總結和顯示隨機數
您只生成一個隨機數,並將其分配給最後一個數組元素...數組的其餘部分未初始化,並將包含垃圾。同樣,你的Output例程只會從數組中打印出一個值(實際上你調用了未定義的行爲,通過使用超出數組大小的索引)。您是否期望這些操作以某種方式填充並打印整個陣列?這不是數組在C++中的工作方式。 –
也強烈建議播種隨機數發生器。目前你有這樣做的功能,但它並沒有被調用。如果它有可能是'srand(a [N]);''會讀出a的邊界,將程序以免費的方式發送到[Undefined Behavior]的神奇之地(https: //en.wikipedia.org/wiki/Undefined_behavior)從字面上可以發生任何事情! – user4581301