난수 연산 검증

2개의 난수를 발생시켜, 그 난수 값을 이용한 간단한 사칙 연산(+, -, *)을 순서대로 풀어보고, 그 정답이 맞는지 확인해보자! 다음 조건에 맞추어 결과화면과 같이 출력이 되도록 프로그램을 작성하십시오.

조건

  • 입력 받는 값은 정수이며, 난수 발생 범위는 정수 0부터 99 사이의 숫자이다.
  • 난수 발생은 stdlib.h 및 time.h 헤더의 srand() 함수와 rand() 함수 및 time() 함수를 사용한다.
  • 먼저 rand() 함수를 사용하여 난수를 발생기키기 전에, srand() 함수를 사용하여 난수의 시드(Seed)값을 설정한다. 이때, srand()함수의 인자 값으로, time() 함수를 사용한다. 즉 srand(time(NULL))과 같은 형태로 작성한다.
  • rand()함수는 1.0부터 0.0 사이의 실수 값을 반환하는 함수로, ‘rand() % [최대 값 - 1] - [최소 값]’와 같은 골을 가진다. 즉, 0부터 99사이의 정수를 구하고자 하면, 수식은 (rand % 100) + 0이 된다.

입력 예

105 // 난수: 47, 58
0
2726

출력 예

정답!
오답..
정답!

image

Source

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

int main(void) {
	srand(time(NULL));

	int num1, num2, ans;
	num1 = rand() % 100;
	num2 = rand() % 100;

	printf("1. %d + %d = ", num1, num2);
	scanf("%d", &ans);
	((num1 + num2) == ans) ? printf("정답!\n") : printf("오답..\n");

	printf("2. %d - %d = ", num1, num2);
	scanf("%d", &ans);
	((num1 - num2) == ans) ? printf("정답!\n") : printf("오답..\n");

	printf("3. %d * %d = ", num1, num2);
	scanf("%d", &ans);
	((num1 * num2) == ans) ? printf("정답!\n") : printf("오답..\n");

	return 0;
}

태그:

카테고리:

업데이트: