안녕하세요..__)

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


int you(int);
//int pp(int (*)(int), int user);
int temp();

int main(int){

int value;
int com, user;
int (*pp)();
pp=&temp;
srand((unsigned int) time(NULL));

while(value<2){
  com=rand()%3+1;
  user=(*pp)();
  //user=temp();
  you(com);
  
  if(user > 4){
   printf("잘못입력하셨습니다.n");
   goto U;
  }
  
  int pro;
  pro = user - com;
  
  switch(pro){
  case 2: printf("졌습니다.n"); break;
  case 1: printf("이기셨습니다.n"); break;
  case -1: printf("졌습니다.n"); break;
  case 0: printf("비겼습니다.n"); break;
  case -2:printf("이겼습니다.n"); break;
  }

  printf("계속 하시겠습니까? [1]예.  [2]아니오.n");
  scanf("%d",&value);
}
U:
printf("프로그램을 종료합니다.n");

return value;
}

int temp(){

int q;
int user;


  printf("우리들의 국민게임 가위 바위 보~ 게임!!n");
  printf("가위[1] 바위[2] 보[3]n");
  scanf("%d",&user);
switch(user){
case 1:
  printf("가위를 내셨습니다.n");
  break;
case 2:
  printf("바위를 내셨습니다.n");
  break;
case 3:
  printf("보를 내셨습니다.n");
  break;
}
q=user;

return q;
}

int you(int com){


switch(com){
case 1: printf("가위n"); break;
case 2: printf("바위n"); break;
case 3: printf("보n"); break;
}

return com;
}

이 소스가 가위바위보 프로그램 소스입니다.

문제는

가위바위보 프로그램을 만들되 함수와 포인터를 사용하라는 것이 었고요.

제가 이 소스를 짠게 아니라..

모르는 부분이 많습니다..

먼저 srand 부분 전혀 이해 안가고요 .

srand((unsigned int) time(NULL));

이부분에 왜 unsigned int를 쓰는지 그리고 time뒤에 NULL은 왜 쓰는지

만약 실수 부분이면 unsigned int 를 float로 바꿔 써야되는지

그리고 srand가 왜 rand 함수랑 같이 쓰이는지

srand 함수에서 값이 나오면 어디에 저장되는지 그리고 저장된 값이 어디에서 사용되는지

함수 포인터 사용 부분이 이해가 안갑니다.

함수 포인터 부분은 하나도 이해가 안가기때문에 차근 차근 설명 부탁드릴께요..__)

부탁드립니다..__) 이해하기 쉽도록 설명해 주세요 아직 C언어 초보라..^ ^

부탁드리겠습니다..__)