3 6 9!

3 6 9 게임 규칙을 간단히 구현해보자! 다음 조건에 맞추어 결과화면과 같이 출력이 되도록 프로그램을 작성하십시오. (단, 박수는 ‘x’로 정한다.)

조건

  • 입력 받는 값은 문자(char)형이며, 난수 발생 범위는 정수 0부터 8사이의 숫자이다.
  • 난수 발생은 stdlib.h 및 time.h 헤더의 srand()함수와 rand()함수 및 time()함수를 사용한다.
  • 문자(char)형으로 입력 받은 값을 정수형 값과 비교할 때는, atoi() 함수를 사용하여 정수형으로 변환시킨 후 비교한다. 이 때, atoi함수의 매개 변수는 *char형으로, 즉 char형 변수 str이 있을 때 atoi(&str)과 같이 사용할 수 있다.
  • 연달아 2번 연속으로 값을 입력 받으며, 3 6 9 게임 규칙에 따라 ‘정답!’또는 ‘틀림..’ 등 판단을 할 수 있는 문자열을 출력시킨다.
  • scanf() 함수를 사용하여 두 번 연속으로 값을 입력 받을 때는, 이 사이에 rewind(stdin)함수를 사용해서 입력 버퍼 스트림을 초기화 시켜준다.

입력 예

x // 난수: 2
5

출력 예

정답!
틀림..

image

Source

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void) {
	int num1 = 0;
	char num2 = 'A';
	srand(time(NULL));
	num1 = rand() % 8 + 1;

	printf("* 박수: 'x'\n\n");
	printf("%d > ", num1);
	scanf("%d", &num2);

	(atoi(&num2) == num1 + 1) ? ((atoi(&num2) == 3 || atoi(&num2) == 6 || atoi(&num2) == 9) ? printf("오답\n") : printf("정답\n")) :
		(((num1 + 1) == 3 || (num1 + 1) == 6 || (num1 + 1) == 9) ? printf("정답\n") : printf("오답\n"));

	rewind(stdin);
	printf("\n");
	num1 = rand() % 8 + 1;

	printf("%d > ", num1);
	scanf("%d", &num2);
	(atoi(&num2) == num1 + 1) ? ((atoi(&num2) == 3 || atoi(&num2) == 6 || atoi(&num2) == 9) ? printf("오답\n") : printf("정답\n")) :
		(((num1 + 1) == 3 || (num1 + 1) == 6 || (num1 + 1) == 9) ? printf("정답\n") : printf("오답\n"));

	return 0;
}

태그:

카테고리:

업데이트: