void f_com_lotto(int com_lotto[]) //매개변수를 배열로 설정
{
com_lotto[6]; // 컴퓨터가 선정한 로또번호 = 길이는 6
// 당첨 번호뽑는 코드
srand(time(NULL)); // 이게 없으면 값이 고정됨
for (int i = 0; i < SIZE; i++) // 0 1 2 3 4 5 (총 6개 픽)
{
com_lotto[i] = (rand() % 45 +1); // 범위: 1~45
printf("%d ", com_lotto[i]);
for (int j = 0; j < i; j++) // 중복 걸러주기
{
if (com_lotto[i] == com_lotto[j]) // 먼저 뽑은거랑 같지 않아야 저장
{
//j=0,i=0 > 0 0 비교 >
i --; // 중복이 생기면 해당 i를 제거하고 다시 뽑기
break;
}
}
}
printf("\n");
}
당첨번호 출력하는걸 중간에 뒀더니 중복이 발생했을 때 삭제되지않아 길이가 7로 늘어나는 문제가 발생했다.
그래서 출력코드를 for문이 끝난 다음에 배치해줬더니 해당 문제를 처리할 수 있었다.
중간에 두면 뭐가 문제였던걸까?
'C언어 > 연습장' 카테고리의 다른 글
로또 / 덩어리3 함수화 하기 전 (0) | 2025.03.16 |
---|---|
로또 기본틀 완성본 (0) | 2025.03.15 |
로또 - 함수 없는 버전 (0) | 2025.03.15 |
0309 <if 조건문> (0) | 2025.03.09 |
0309 <while반복문> (0) | 2025.03.09 |