코딩 공부

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 ");
	}
}

결과물

 

추가로 하고 싶은 것..

복잡도 계산 및 여러번 시행, 수학적 모델링