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
'끄적끄적 개발공부' 카테고리의 다른 글
#배열로 로또번호 뽑기(3) feat.bubblesort (0) | 2021.04.10 |
---|---|
# 배열로 로또번호 뽑기(2) (0) | 2021.04.10 |
# C++ 기초 입출력 (0) | 2021.04.07 |
# for문으로 *(별)을 출력하여 도형 만들기 (0) | 2021.04.05 |
# 가위, 바위, 보 게임 (0) | 2021.04.05 |