[C] 로또추첨프로그램

2018. 1. 22. 02:13

cybertramp LANG/C or C++

내가 직접 만든 로또 추출 프로그램이다.

친구가 구현이 안된다 그래서 직접 만들었다.


좀 지났지만 올려둔다.

만자로에서 컴파일 했었던것 같다.


소스코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* 
 * 프로그램 제목 : 로또 추출기 
 * 만든이 : Cybertramp
 * 만든날짜 : 171121
 * 플랫폼 : Linux
 * 컴파일러 : gcc5.4
 */
 
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
int main()
{
    FILE *fp;
    unsigned short cho_num[7]={0};        // 6개 당첨번호 + 보너스번호
    unsigned short rand_num=0;            // 랜덤 변수
    unsigned short input_num=0;            // 추첨 횟수
    char file_name[160= {' '};                // 파일명
    char input_res= 0;
    
    printf("===== LOTTO =====\n");
    printf("추첨 횟수를 입력 해주세요.\n");
    scanf("%d",&input_num);
    printf("저장할 파일명을 입력해주세요.\n");
    scanf("%s",&file_name);
    
    fp=fopen(file_name,"wt");
    if(fp == NULL)
    {
        printf("파일을 불러 올수없습니다. 프로그램을 종료합니다.\n");
        return 1;
    }
    printf("\n추첨을 시작합니다.\n");
    fprintf(fp,"=== %d 번의 추첨 값 ===\n",input_num);
    srand(time(NULL));
    for(short i=0;i<input_num;i++){
        for(short i2=0;i2<7;i2++){
            cho_num[i2] = rand()%((45-1)+1)+1;        //rand()%((last-start)+1)+start
            if(i2!=0){                        // 만약 첫번째 추첨이 아니면
                while(1)
                    if(cho_num[i2-1== cho_num[i2]){    // 만약 전 추첨번호와 같다면
                        cho_num[i2] = rand()%45;            // 다시 랜덤추출
                    }
                    else                                     // 같지 않다면
                        break;                                // 탈출
            }
        }
    printf("\n[횟수 : %d횟수] ==============\n",i+1);
    printf("[ %d ] [ %d ] [ %d ] [ %d ] [ %d ] [ %d ] 보너스번호 : [ %d ]\n",cho_num[0],cho_num[1],cho_num[2],cho_num[3],cho_num[4],cho_num[5],cho_num[6]);
    fprintf(fp,"%d회 | [ %d ] [ %d ] [ %d ] [ %d ] [ %d ] [ %d ] 보너스번호 : [ %d ]\n",i+1,cho_num[0],cho_num[1],cho_num[2],cho_num[3],cho_num[4],cho_num[5],cho_num[6]);
    }
    
    fprintf(fp,"\n=== 기록 완료 ===\n");
    fclose(fp);
    printf("출력과 저장이 완료 되었습니다.\n");
    printf("재실행 하시겠습니까? Y or N\n");
    scanf(" %c",&input_res);
    if(input_res == 'y' || input_res == 'Y')
        main();
        
    return 0;
}
 
cs