프로그래밍입문_리포트1
- 최초 등록일
- 2011.10.17
- 최종 저작일
- 2011.05
- 7페이지/ 한컴오피스
- 가격 1,000원
소개글
프로그래밍 입문 1차 레포트입니다. A+받은 자료입니다.
목차
없음
본문내용
#include <stdio.h>
#include <stdlib.h> // rand함수 사용을 위해 stdlib.h 파일을 include한다.
int main (void)
stdio.h, stdlib.h 파일을 include하고 main함수를 int형으로 지정합니다.
{
int gbb; // 사용자의 가위바위보 데이터 저장
int cpugbb; // CPU의 가위바위보 데이터 저장
int aftergame = 0; // 계속할지, 종료할지 여부
int exitnumber = 0; // 계속, 종료의 반복문을 빠져나가기 위한 변수
필요한 변수들을 선언합니다.
printf("가위바위보 게임\n");
while (1)
{
gbb=0; // 무한 반복 버그를 해결하기 위한 코드
exitnumber = 0; // 이 코드가 없으면 계속, 종료의 반복문이 무용지물이 된다.
cpugbb = rand() % 3; // rand() % 3 + 1 이라고 지정하면 1:1대응을 할 수도 있다.
// CPU의 0은 3이라고 계산하였다.
printf("가위(1), 바위(2), 보(3), 종료(0) : ");
scanf("%d",&gbb);
gbb=0이라고 지정하지 않으면, 숫자가 아닌 문자나 문장을 입력할시 위의 문장이 무한 반복 되는 버그가 발생합니다. 이는 변수 gbb를 int 로 선언했기 때문에 생기는 문제로 여겨지고, int대신 char로 선언한 후 switch문에서 case 1을 case `1` 등으로 바꾸어 사용하여 해결하려고 했으나 잘 되지가 않았습니다.
그래서 gbb=0 으로 강제 지정하여, 이 버그를 해결했습니다.
이렇게 하면 알파뱃등을 입력할 시 0을 입력한 것으로 인식하여, 자동으로 종료가 됩니다.
gbb=0 부분을 지우면 알파뱃등을 입력할 시 무한 루프가 되는 것을 볼 수 있습니다.
exitnumber=0 부분을 없애면, 프로그램 실행을 1회 반복시 아래 ‘계속, 종료’ 반복문이 작동하지 않습니다.
참고 자료
없음