끄적끄적 개발공부

# 배열로 로또번호 뽑기 (1)

HYuk 2021. 4. 10. 03:59
728x90

난수를 써서 로또번호 뽑기를 하려고한다.

#include <iostream>
#include <time.h>

using namespace std;

void main()
{
	srand(unsigned(time(NULL)));

	int iNum[6] = {};
	//중복없이 랜덤값 뽑기
	iNum[0] = rand() % 45 + 1;
	for (int i = 0; i < 6; ++i)
	{
		iNum[i] = rand() % 45 + 1;
		for (int j = 0; j < i; ++j)
		{
			while (iNum[i] == iNum[j])
			{
				iNum[i] = rand() % 45 + 1;
			}
		}
	}
}

일단 1~45의 랜덤수를 뽑는데는 난수함수를 썼다.

로또 번호를 뽑으려면 일단 한번 나온숫자는 중복되서 나오면 안된다

따라서 for문과 while문을 사용해서 위와 같이 중복된 값이 없게 뽑으려 코드를 작성해보았는데

저 코드는 문제가 있다.

3번을 뽑았을때 1번과 비교하고 맞으면 다시뽑고 2번과 비교하고 맞으면 다시뽑고 이런식으로 생각해서 작성한 것인데

2번과 맞았을때 다시 뽑을경우, 그 다시 뽑은 숫자가 1번과 같을때 다시 1번과 확인하지 않고 넘어가기 때문이다.

 

728x90