#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 함수를 내 배열에 전달하고 임의의 숫자를 생성하지 않으므로 차례대로 배열에 추가하지 않습니다. 프로그램. 난 여전히 난수 생성기를 이해하려고 노력하고 있습니다. 그래서 그 어떤 충고도 가장 감사 할 것입니다!배열이 합산되지 않음 및 난수 표시
단일 난수를 생성하고 마지막 배열 요소에 할당하면 나머지 배열은 초기화되지 않고 가비지가 포함됩니다. 마찬가지로 출력 루틴은 배열의 한 값만 인쇄합니다 (실제로 배열 크기의 범위를 벗어나는 인덱스를 사용하여 정의되지 않은 동작을 호출합니다). 이러한 작업이 어떻게 든 전체 배열을 채우고 인쇄 할 것이라고 기대 했습니까? 배열이 C++에서 작동하는 방식이 아닙니다. –
난수 생성기를 시드하는 것이 좋습니다. 현재이 작업을 수행하는 기능이 있지만 호출되지는 않습니다. 그리고 그것이 확률이 좋다면'srand (a [N]);이 (가) 자유의 모든 비용 지출에 대한 프로그램을 보내어 [정의되지 않은 행동] (https : //en.wikipedia.org/wiki/Undefined_behavior) 어디에서나 문자 그대로 일어날 수 있습니다! – user4581301