-
명품 C++ 3장 6번C++ 2018. 10. 28. 15:21
6. 문제 5번을 참고하여 짝수 정수만 랜덤하게 발생시키는 EvenRandom 클래스를 작성하고 EvenRandom 클래스를 이용하여 10개의 짝수를 랜덤하게 출력하는 프로그램을 완성하라. 0도 짝수로 처리한다.
소스코드
#include <iostream>#include <cstdlib>#include <ctime>using namespace std;class EvenRandom {public:EvenRandom();int next();int nextInRange(int x, int y);};EvenRandom::EvenRandom() {srand((unsigned)time(0));}int EvenRandom::next() {int n = rand();if (n % 2 == 0) return n;else return n - 1;}int EvenRandom::nextInRange(int x,int y) {int n= rand() % (y - x+1) + x;if (n % 2 == 0) return n;else return n - 1;}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;}실행결과
2로 나눈 나머지로 짝수를 판별하여 맞다면 그대로 리턴하고, 홀수라면 1을 빼서 짝수로 맞췄습니다.
'C++' 카테고리의 다른 글
명품 C++ 3장 8번 (0) 2018.10.28 명품 C++ 3장 7번 (0) 2018.10.28 명품 C++ 3장 5번 (0) 2018.10.28 명품 C++ 3장 4번 (0) 2018.10.28 명품 C++ 3장 3번 (0) 2018.10.28