본문 바로가기

【그로잉】/…Programming

C게임 #4-3. 로또 만들기(下)

결국 교수님 조언 구해서 클리어...

후아, 토나오는 줄 알았네...

힌트를 통해서 별별 실험이랑 코딩을 해본 결과 드디어 클리어...

꼼수는 배열 46자리. ...

 

아직 과제중이므로 핵심적인 부분은 지금은 공개하지 않습니다.

알고리즘

1. 1부터 45까지의 랜덤한 숫자 6가지를 구한다.

- 이 때 배열은 이차원배열을 사용한다.

2. 이 수를 총 10번까지 반복을 한다.

3. 모든 출력이 끝났다면 지금까지 나왔던 총 횟수(카운터)를 출력한다.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//변수 선언
int main(){
int i, j, k, l, lotto[10][6], motto[46];

//랜덤 선언
srand(time(NULL));
for(i=0; i<45; i++){motto[i]=0;}

//반복 시작
for(k=0; k<10; k++){
for(i=0; i<6; i++){

//중복 제거
again:

1줄임.


for(j=0; j<i; j++){
if(lotto[k][i]==j){goto again;}
}

//카운터 입력

for문, if문


//출력
printf("제 %d회차 로또 번호 : \t%d\t %d\t %d\t %d\t %d\t %d\t\n",k+1, lotto[k][0], lotto[k][1], lotto[k][2], lotto[k][3], lotto[k][4], lotto[k][5]);
}

printf("\n");
for(k=1; k<46; k++){
if(motto[k]>0){
if(k<10){printf(" ");}//줄 맞추기 용
printf("%d 나온 횟수 : %d\n", k, motto[k]);
}
}
return 0;
}