1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. int main(void)
5. {
6. while(1)
7. {
8. char c1;
9. char c2;
10. printf("가위(s) 바위(r) 보(p) 게임을 시작합니다\n");
11. printf("가위 바위 보를 선택하세요");
12. scanf("%c",&c1);
13. c2=rand()%3;
14. if(c1=='s')
15. {
16. c2=0;
17. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
18. printf("당신은 비겼습니다");
19. }
20. else if(c1=='s')
21. {
22. c2=1;
23. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
24. printf("당신은 졌습니다");
25. }
26. else if(c1=='s')
27. {
28. c2=2;
29. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
30. printf("당신은 이겼습니다");
31. }
32.
33. if(c1=='r')
34. {
35. c2=0;
36. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
37. printf("당신은 이겼습니다");}
38. else if(c1=='r')
39. {
40. c2=1;
41. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
42. printf("당신은 비습니다");
43. }
44. else if (c1=='r')
45. {
46. c2=2;
47. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
48. printf("당신은 졌습니다"); }
49.
50. if(c1=='p')
51. {
52. c2=0;
53. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
54. printf("당신은 졌습니다");}
55. else if(c1=='p')
56. {
57. c2=1;
58. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
59. printf("당신은 이겼습니다");
60. }
61. else if (c1=='p')
62. {
63. c2=2;
64. printf("당신은 %c를 냈고 컴퓨터는 %c를 냈습니다. c1, c2");
65. printf("당신은 비겼습니다");
66. }
67. }
68.
69. printf("다음에 또 만나요");
70. return 0;
71. }
💡 if문 안에서 비교연산자와 대입 연산자를 구분지어 사용하지 않았다.
- 실수한 행
- 13행, 18행, 24행, 31행, 36행, 42행, 49행, 54행, 60행
- 놓친 개념
- =과 ==의 차이점 / 교재 p.85 + p.91
- =의 경우 대입연산자이다. 즉 오른쪽 수식의 결과를 왼쪽 변수에 저장한다는 것이다. ex) a = 10; → 이 경우에 a에 10의 값을 넣겠다는 의미인 것이다.
- ==의 경우 관계연산자이다. 즉 동등관계를 의미하는 것이다. ex) a==b → a와 b의 값이 같다는 것을 의미한다. ex) a!=b → a와 b의 값이 같지 않다는 것을 의미한다.
💡 문자 간 비교를 하지않고, 단지 보이는 ‘수’를 비교했다.
- 실수한 행
- 14행, 20행, 26행, 33행, 38행, 44행, 51행, 56행, 62행
- 놓친 개념
- if(c1=='s') → 이런 식으로 ‘ ’를 넣지 않고 그냥 s로 넣으면 안된다.
💡 if → else if → else ↔ if → else if → else if 의 차이점을 알지 못했다.
- 실수한 행
- 14 → 20 → 26
- 33 → 38 → 44
- 51 → 56 → 62
- 놓친 개념
- if → else if → else 의 경우 if에서 해결되지 못한 내용이 else if로 전달된다. 그치만! else의 경우 그냥 거기서 멈춰지는 것이다. 결론이 나는 느낌!
- if → else if → else if 의 경우 if에서 해결되지 못한 내용이 else if로 전달되고, else if로 전달되는 내용이 다시 else if 로 전달된다.