본문 바로가기

C

[C언어] 실습: rand() 함수를 이용하여 x, y 좌표값 출력하기

반응형

rand() 함수를 이용하여 x, y 좌표값 출력하기


#include<stdio.h>
#include<string.h>
#include<stdlib.h>   // rand()
#include<time.h>     // time()

typedef struct point{
   int x;
   int y;
} Point;

void set_point(Point *pArr, int x, int y);
void print_point(const Point *pArr);

int main(){
   Point arr[5] = {0};   // Point 구조체의 변수 arr[]를 선언하고, index를 모두 0으로 초기화 해준다.

   int size = sizeof(arr) / sizeof(arr[0]);   // 구조체 변수 arr[]에서 하나의 index 크기는 int x와 int y때문에 8byte이다.

   srand((unsigned int)time(NULL));   // 난수 발생 시 시간차가 없으면 똑같은 난수가 생성되기 때문에, 난수의 시드값을 time(NULL) 단위로 변경한다.

   for(int i = 0; i < size; ++i){
      int x = rand() % 100;   // 0 ~ 100 사이의 난수를 생성한다.
      int y = rand() % 100;

      set_point(&arr[i], x, y);   // 구조체 Point의 변수 arr[]의 멤버 변수 x, y의 값에 저장하기 위해 배열의 주소값을 인자로 전달한다.
   }

   for(int i = 0; i < size; ++i){
      print_point(&arr[i]);
   }

   return 0;
}

void set_point(Point *pArr, int x, int y){
   pArr->x = x;
   pArr->y = y;
}

void print_point(Point *pArr){
   printf("(%d, %d)\n", pArr->x, pArr->y);
}

 

반응형