πŸ’» Dev & CSC++ Programming

C++ Programming Ch.10 Exercise 12 Solution

Problem: Open Challengeλ₯Ό μˆ˜μ •ν•˜μ—¬ μ‚¬μš©μžκ°€ μ–΄νœ˜λ₯Ό μ‚½μž…ν•  수 μžˆλ„λ‘ κΈ°λŠ₯을 μΆ”κ°€ν•˜λΌ. Execution ResultλŠ” λ‹€μŒκ³Ό κ°™λ‹€. Execution Result: Objective & Hints: vector μ»¨ν…Œμ΄λ„ˆμ˜ μ’…ν•© μ‘μš© μ—°μŠ΅ 랜덀 μ •μˆ˜λ₯Ό λ°©μƒμ‹œν‚€κΈ° μœ„ν•΄ λ‹€μŒ 두 라인의 μ½”λ“œκ°€ ν•„μš”ν•˜λ©°, κ³Ό λ₯Ό include ν•΄μ•Ό ν•©λ‹ˆλ‹€. 1 2 srand((unsigned)time(0)); // μ‹œμž‘ν•  λ•Œλ§ˆλ‹€, λ‹€λ₯Έ 랜덀수λ₯Ό λ°œμƒμ‹œν‚€κΈ° μœ„ν•œ seed μ„€μ • int n = rand(); // 0μ—μ„œ RAND_MAX(32767) μ‚¬μ΄μ˜ λžœλ€ν•œ μ •μˆ˜κ°€ n에 λ°œμƒ 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 #include #include #include #include using namespace std; class Word { string engWord, korWord; public: Word(string engWord=0, string korWord=0){ this->engWord = engWord; this->korWord = korWord; } void inputWord(string engWord, string korWord){ this->engWord = engWord; this->korWord = korWord; } string getEngWord(){ return engWord; } string getKorWord(){ return korWord; } }; void inputWord(vector &v) { cout << "μ˜μ–΄ 단어에 exit을 μž…λ ₯ν•˜λ©΄ μž…λ ₯ 끝\n"; string engWord, korWord; while(true){ cout << "μ˜μ–΄ >>"; cin >> engWord; if(engWord == "exit") break; cout << "ν•œκΈ€ >>"; cin >> korWord; v.push_back(Word(engWord, korWord)); } } void gameStart(vector &v) { srand((unsigned)time(0)); int num; cout << "μ˜μ–΄ μ–΄νœ˜ ν…ŒμŠ€νŠΈλ₯Ό μ‹œμž‘ν•©λ‹ˆλ‹€. 1~4 μ™Έ λ‹€λ₯Έ μž…λ ₯μ‹œ μ’…λ£Œ.\n"; while(true){ int randNum = rand()%v.size(); cout << v.at(randNum).getEngWord() << "?\n"; string ex[4] = " "; int tmp = rand()%4; ex[tmp] = v.at(randNum).getKorWord(); for(int i=0; i<4; i++){ if(tmp == i) continue; while(true){ // μ€‘λ³΅λ˜λŠ” μˆ«μžκ°€ μ—†κ²Œ 처리 int numChosen = rand()%v.size(); if(ex[0]!=v.at(numChosen).getKorWord() && ex[1]!=v.at(numChosen).getKorWord() && ex[2]!=v.at(numChosen).getKorWord() && ex[3]!=v.at(numChosen).getKorWord()){ ex[i] = v.at(numChosen).getKorWord(); break; } } } for(int i=0; i<4; i++) cout << "(" << i+1 << ") " << ex[i] << ' '; cout << ":>"; cin >> num; // 숫자만 μž…λ ₯ if(num == -1

March 10, 2020 Β· 2 min Β· Sobamemil