반응형

// ** 포인터 배열을 사용하여 로또 6자리 출력하기

 

#include "stdafx.h"
#include <stdio.h>
#include <random>
using namespace std;


int main()
{
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(1, 45);

 // 랜덤수 출력 함수


 int data[45] = { 0 };
 int dice = 0, count = 0;
 for (int i = 1; i <= 45; i++) {
  *(data + (i - 1)) = i;
 }

 while (count < 6) {

  dice = range(rn);

  if (*(data + dice) != 0) {
   printf("\n%d  ", *(data + dice));
   *(data + dice) = 0;
   count++;
  }

 }
 return 0;
}

========================================================================

 

** 포인터 배열을 사용하는 경우

 

1. SWAP함수 처럼 사용할 경우

2. 하드웨어적으로 직접적으로 주소값을 수정할 경우.

3. 메모리 동적할당

 

========================================================================

 

// swap함수 없이 45개 배열 숫자 섞기 셔플방식


#include "stdafx.h"
#include <stdio.h>
#include <random>
using namespace std;


int main()
{
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(0, 44);

 // 랜덤수 출력 함수


 int data[45] = { 0 };
 int dice = 0, count = 0;
 for (int i = 1; i <= 45; i++) {
  *(data + (i - 1)) = i;
 }

 int ran1 = range(rn), ran2=range(rn);
 int tmp =0 ;
 for (int i = 0; i < 10000; i++) {
  ran1 = range(rn), ran2 = range(rn);
  tmp = *(data + ran1);
  *(data + ran1) = *(data + ran2);
  *(data + ran2) = tmp;
 }

 for (int i = 0; i < 45; i++) {
  printf("%d  ",data[i]);
 }
 return 0;
}

 

========================================================================

 

// 메모리 동적 할당.


#include "stdafx.h"
#include <stdio.h>
#include <random>
using namespace std;


int main()
{
 int enemy_qu = 0;
 printf("몇 명의 적 출현 시킬까요 ? : ");
 scanf_s("%d",&enemy_qu);

 // 메모리 동적 할당
 int *enemy = new int[enemy_qu];

 // 적 출현
 for (int i = 0; i < enemy_qu; i++) {
  *(enemy + i) = i * 10;
  printf("%d ", *(enemy + i));
 }
 //동적할당 메모리 삭제
 delete enemy;
 return 0;
}

 

반응형

'Study > C' 카테고리의 다른 글

C언어 - Tictactoe 게임  (0) 2018.08.28
C언어 - 블럭 옴기기 게임  (0) 2018.08.28
C언어 - 포인터 2  (0) 2018.08.28
C언어 - 포인터  (0) 2018.08.28
C언어 - Rullet 게임 만들기 2  (0) 2018.08.28

+ Recent posts