코딩 공부
Rand() 함수 공부 및 응용 - 로또 프로그램 연습
실버호크
2019. 11. 27. 00:36
한국의 복권 중
나눔로또 는 1~45 까지 6개의 숫자를 맞추는 게임이다.
로또 당첨을 기원하면서 검색하고 찾아보고 또 다듬을 목적으로 올려봅니다.
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
// 로또 예측 난수 프로그램 + 중복 난수 제외
// 6자리 숫자 배열
// 배열 + 랜덤함수 1~45
// 중복 없이 랜덤함수 하려면, rand 함수로 값을 얻었을 때 data 배열에 이미 저장된 값과 중복이 발생했는지 체크, 중복 되었다면 새 난수 를 받아야함.
int main() {
int chk = 0;
int numArr[6] = { 0,0,0,0,0,0 };
//int copiedArr[6] = { 0,0,0,0,0,0 };
//시간 복잡도 및 공간 복잡도 계산하고 싶어
int i_count = 0;
int j_count = 0;
srand(time(NULL));
int random = (rand() % 45) + 1;
printf(" To Start this program, enter 1...\n");
scanf_s("%d", &chk);
if (chk == 1)
{
//numArr[0] = (rand() % 45) + 1;
//1. variable "i" for assigning value for each array. variable "j" for check there is same value.
for (int i = 0; i < 6; i++) {
//1-1. 난수 발생
numArr[i] = (rand() % 45) + 1; //i -> 1
for (int j = 0; j < i; j++) {
if (numArr[i] == numArr[j]) { //
i--;
break;
}
j_count++;
}
i_count++;
}
for (int j = 0; j < 6; j++) {
/*if (numArr[j] > numArr[j + 1]) {
copiedArr[j] = numArr[j + 1];
numArr[j + 1] = numArr[j];
numArr[j] = copiedArr[j];
}*/
printf(" %d ", numArr[j]);
}
printf("\n 난수 발생 횟수 %d , 같았던 경우의 수 %d ", i_count, j_count);
return 0;
}
else {
printf(" Wrong Access ");
}
}
결과물
추가로 하고 싶은 것..
복잡도 계산 및 여러번 시행, 수학적 모델링