새싹교실/2015/수업시작은5시반/0417 (rev. 1.6)
과제방 ¶
- 소수 출력
- 입력받은 정수 이하의 소수의 갯수와 소수들을 출력하는 프로그램
- 자연수 외의 입력은 모두 예외 처리
- 게임은 끝나지 않는다. 사용자가 끝내기 전까지는....
- 구십구단 퀴즈
- 2 ~ 19까지 랜덤의 두 수를 선정하여 구구단 퀴즈를 출력한다.
- 사용자는 5초 내로 값을 입력하지 않으면 안된다.
- 게임은 총 n번 진행되어야 한다.(n은 코드상에서 상수로 미리 지정해 줘야 한다)
- 5초 내에 사용자가 정답을 맞출 경우 (5 - t)(단위 : s)만큼의 점수가 가산된다.
- 오답 혹은 시간 내에 정답을 맞추지 못할 경우 2점 감점된다.
- 한 판(n번의 퀴즈)이 끝난다면 게임은 다시 시작되어야 한다. 사용자가 게임을 그만하길 원할 때까지....
- 이 과제는 반드시 완료하기를 바란다. 왜냐하면 다음 시간에 이 과제를 이어서 진행할 것이기 때문이다.
송준호 ¶
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#pragma warning(disable:4996)
int main()
{
int ran1 = 0, ran2 = 0, result = 0, retry = 0; // 랜덤 숫자 2개
int inp = 0, point = 0; // 입력값, 점수
//여기부터 게임 스타트
do{
for (int i = 1; i < 4; i++){
ran1 = rand() % 18 + 2;
ran2 = (int)(sqrt(ran1)) % 18 + 2;
result = ran1*ran2;
inp = 0;
// 난수 생성했음
clock_t start = clock();
printf("%d 곱하기 %d는 무엇입니까?\n", ran1, ran2);
scanf("%d", &inp);
if ((clock() - start) / CLOCKS_PER_SEC > 5){
printf("시간 초과\n");
point -= 2;
}
if (inp == result){
printf("정답입니다.\n");
point = point + (5 - (clock() - start));
}
else if (inp !=result){
printf("틀렸습니다.\n");
point -= 2;
}
printf("%d번째 게임이었습니다.\n 당신의 점수는 %d점.\n", i, point);
} // 점수내기
printf("더 하려면 1, 아니면 0을 입력하세요.\n");
scanf("%d", &retry);
} while (retry = 1);
printf("당신의 점수는 %d점입니다.\n", point);
return 0;
}