C++ Programming Ch.3 Exercise 6 Solution
Problem: ๋ฌธ์ 5๋ฒ์ ์ฐธ๊ณ ํ์ฌ ์ง์ ์ ์๋ง ๋๋คํ๊ฒ ๋ฐ์์ํค๋ EvenRandom ํด๋์ค๋ฅผ ์์ฑํ๊ณ EvenRandom ํด๋์ค๋ฅผ ์ด์ฉํ์ฌ 10๊ฐ์ ์ง์๋ฅผ ๋๋คํ๊ฒ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. 0๋ ์ง์๋ก ์ฒ๋ฆฌํ๋ค. Objective & Hints: ํด๋์ค ์์ฑ ๋ฐ ํด๋์ค ํ์ฉ Execution Result: Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #include #include #include using namespace std; class EvenRandom{ public: EvenRandom(); int next(); int nextInRange(int a, int b); }; EvenRandom::EvenRandom(){ srand((unsigned)time(0)); } int EvenRandom::next() { int ran = rand(); if(ran%2 == 0) return ran; else return --ran; } int EvenRandom::nextInRange(int a, int b){ int ran = rand()%(b-a+1) + a; if(ran%2 == 0) return ran; else return --ran; } int main(){ EvenRandom r; cout << "-- 0์์ " << RAND_MAX << "๊น์ง์ ๋๋ค ์ ์ 10 ๊ฐ--" << endl; for(int i=0; i<10; i++) { int n = r.next(); // 0์์ RAND_MAX(32767) ์ฌ์ด์ ๋๋คํ ์ ์ cout << n << ' '; } cout << endl << endl << "-- 2์์ " << "10 ๊น์ง์ ๋๋ค ์ ์ 10 ๊ฐ --" << endl; for(int i=0; i<10; i++) { int n = r.nextInRange(2,10); // 2์์ 10 ์ฌ์ด์ ๋๋คํ ์ ์ cout << n << ' '; } cout << endl; } Explanation: ...