언어

이거 좀 신기하다 공부해볼것

파아랑새 2015. 12. 6. 14:41

#pragma warning(disable:4996)
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
#define MATRIX_SIZE 5
#define MAX_NUMBER 5
#define TIME_LIMIT 5
void intro_game();
void game_control();
void print_number(int n, int cnt[]);
int find_num(int cnt[]);
void cheak_result(int user, int answer, int cnt[]);
int main()
{
 srand((unsigned)time(NULL));
 intro_game();
 game_control();


 return 0;
}
void intro_game()
{
 printf("정방행렬에 나타난 숫자 중에서\n");
 printf("가장 많이 출현한 숫자를 찾아라!\n\n");
 printf("제한시간은 5초 입니다.\n\n");
 printf("아무키나 누르면 시작합니다.\n");

 getch();
}
void game_control(void)
{
 int cnt[MAX_NUMBER], answer, user;
 clock_t start, end;
 double pst;
 system("cls");
 print_number(MATRIX_SIZE, cnt);
 answer = find_num(cnt);
 printf("\n\n");
 printf("출현횟수가 가장 많은 숫자 입력>");
 start = clock();

 while (!kbhit())
 {
  end = clock();
  pst = (double)(end - start) / CLK_TCK;
  if (TIME_LIMIT<pst)
  {
   printf("\n제한시간을 넘었습니다.\n");
   exit(0);

  }


 }
 user = getch() - '0';
 printf("%d", user);
 cheak_result(user, answer, cnt);

}
void print_number(int n, int cnt[])
{
 int i, j, r_num;
 for (i = 0; i<MAX_NUMBER; i += 1)
  cnt[i] = 0;
 for (i = 1; i <= n; i += 1)
 {
  for (j = 1; j <= n; j += 1)
  {
   r_num = rand() % MAX_NUMBER;
   cnt[r_num] += 1;
   printf("%d", r_num);
  }
  printf("\n");
 }

}
int find_num(int cnt[])
{
 int i, check, max_num = 0;
 for (i = 0; i<MAX_NUMBER; i += 1)
 {
  if (max_num <= cnt[i])
  {
   max_num = cnt[i];
   check = i;

  }

 }

 return check;
}
void cheak_result(int user, int answer, int cnt[])
{
 if (user == answer)
  printf("\n 맞았습니다.\n");
 else
  printf("\n틀렸습니다.\n");
 printf("번호 : %d, 횟수 : %d \n", answer, cnt[answer]);

}