1. 3~7 사이의, 3과 7를 포함한 랜덤한 숫자를 풀력하는 프로그램을 작성하자.
- 입력: 없음
- 처리: 지정한 변수에 랜덤 값을 대입
- 랜덤 값 예시: 3, 4, 5, 6, 7. 즉 3+0, 3+1, 3+2, 3+3, 3+4이다.
- 결론적으로 필요한 랜덤 값은 0~4로, 5의 나머지 값이다.
- 즉, 랜덤 값을 5로 나눈 나머지 값에 +3을 한 수가 문제 조건에 해당하는 수.
- 출력: 실행 할 때마다 변하는 숫자 하나 출력(즉 변수 사용)
- 답
//실습1: 3과 7사이의 랜덤한 숫자를 출력하는 프로그램
cout << "\n##실습1: 3과 7사이의 랜덤한 숫자를 출력하는 프로그램" << endl;
srand(time(NULL));
cout << (rand() % 5) + 3 << endl;
//실습1: 3과 7사이의 랜덤한 숫자를 출력하는 프로그램
int rand_num;
srand(time(NULL));
rand(); // 0 ~ 3277 % 5 >> 0~4의 값 나옴
rand_num = 3, 4, 5, 6, 7; // == 3 + 0, 3 + 1, 3 + 2, 3 + 3, 3 + 4; 3은 고정 값. 0~4의 값이 필요.
rand_num = 3 + rand() % 5;
cout << rand_num << endl;
2. 가장 작은 값과 큰 값을 입력 받아서, 그 사이의 임의의 값을 출력하는 프로그램을 작성하자.
- 입력: 최소/최대 두가지 값.
- 처리: 가장 큰 값과 가장 작은 수 사이의 랜덤 값 출력
- 위에와 비슷.
- 나누는 수는 가능한 랜덤수의 개수. (가장 큰 값 - 가장 작은 값 + 1)
- 더하는 수는 최소 값. (0~랜덤수의 개수 + 가장 작은 값)
- 출력: 실행 할 때마다 변하는 숫자 하나 출력(즉 변수 사용)
- 답
//실습2: 가장 작은 값과 큰 값을 입력 받아서, 그 사이의 임의의 값을 출력하는 프로그램을 작성하자.
cout << "\n##실습2: 사용자가 지정한 범위의 랜덤값 출력" << endl;
int minValue = 0;
int maxValue = 0;
cout << "가장 작은 값을 입력해주세요: ";
cin >> minValue;
cout << "가장 큰 값을 입력해주세요: ";
cin >> maxValue;
cout << (rand() % (maxValue - minValue + 1)) + minValue << endl;
//실습2: 가장 작은 값과 큰 값을 입력 받아서, 그 사이의 임의의 값을 출력하는 프로그램을 작성하자.
int input_min_number;
int input_max_number;
cin >> input_min_number;
cin >> input_max_number;
int rand_num = input_min_number + rand() % (input_max_number - input_min_number + 1);//최소값에 해당 범위의 숫자의 개수
cout << rand_num << endl;
2. 1 ~ 9 사이의 랜덤 숫자 맞추기
- 사용자에게 수를 입력받고, 해당 수와 1~9사이 랜덤 숫자를 비교하여 맞으면 true, 아니면 false
- 입력: 사용자가 입력한 랜덤 수
- 처리: 랜덤수를 생성하고 비교
- 앞에 예제를 참고하여 랜덤 값을 생성한다.
- 출력: true/false 출력
- 3항 연산자 사용. (랜덤수와 입력 값이 같은가?) ? true: false;
cout << "\n##실습3: 1 ~ 9 사이의 랜덤 숫자 맞추기" << endl;
int answer = (rand() % 9) + 1;
int userInput = 0;
cout << "예상하는 값을 입력해주세요(1~9): ";
cin >> userInput;
cout << boolalpha << (userInput == answer) << endl;
(userInput == answer) ? cout << "true" << endl : cout << "false" << endl;
int correct_number;
correct_number = (rand() % 9) + 1;
//cout << "미리보는 정답: " << correct_number << endl;//테스트용
int input_quiz_number;
cin >> input_quiz_number;
(input_quiz_number == correct_number) ? cout << "true" << endl : cout << "false" << endl;
'C++' 카테고리의 다른 글
C++ 기초(4): 제어문-반복문(22.04.12) (0) | 2022.04.13 |
---|---|
C++ 기초(4): 제어문- 조건문(22.04.12) (0) | 2022.04.13 |
C++ 기초(3): 연산자(논리/3항 연산자)와 난수 (22.04.11) (0) | 2022.04.12 |
C++ 쫌쫌따리(1): Visual studio 자동 완성 단축키와 코드 분할 화면, cout 내부 처리 등(22.04.07) (0) | 2022.04.11 |
C++ 기초(2): 연산자 (22.04.07) (0) | 2022.04.11 |