// ** 포인터 배열을 사용하여 로또 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 |