본문 바로가기
IVS/C 프로그래밍

[C] 로또 추첨 예제

by 코곰_ 2025. 1. 13.

 

 

 

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <time.h>
#define MAX_LOTTO_NUMBER 45
void generateLottoNumber(int lottoNum[7]) { 
    int cnt = 0; // 뽑은 lottoNum 개수 
    srand((unsigned)time(NULL));
    while(cnt < 7){
        // 동일한 수가 없으면 "lottoNum"에 추가, 있다면 다시 한번 반복
        int newNum = (rand() % MAX_LOTTO_NUMBER) + 1;
        bool flag = false;
        for(int i=0; i<7; i++){
            if(newNum == lottoNum[i]) {
                flag = true;
                break;
            }
        }
        if(flag){ // 값이 존재하면 
            continue;
        }
        // 값이 존재하지 않으면 
        lottoNum[cnt] = newNum;
        cnt++;
    }
}
void printResult(int lottoNum[7], int inputNum[6]) {
    int correct = 0;
    bool bonus = false;
    for(int i=0; i<6; i++){
        for(int j=0; j<7; j++){
            if(lottoNum[j] == inputNum[i]) correct++;
        }
    }
    for(int i=0; i<7; i++){
        if(inputNum[i] == lottoNum[6]) bonus = true;
    }
    
    if(correct == 6){
        printf("1등\n");
    }
    else if(correct == 5 && bonus){
        printf("2등\n");
    }
    else if(correct == 5){
        printf("3등\n");
    }
    else if(correct == 4){
        printf("4등\n");
    }
    else if(correct == 3){
        printf("5등\n");
    }
    else{
        printf("꽝\n");
    }

}


int main(void) {
    int lottoNum[7], inputNum[6];
    int equalCount = 0;
    generateLottoNumber(lottoNum);
    printf("lotto number : %d %d %d %d %d %d\n", lottoNum[0], lottoNum[1], lottoNum[2], lottoNum[3], lottoNum[4], lottoNum[5]);
    printf("bonus number : %d\n", lottoNum[6]);
    printf("\nplease input 6 number : ");
    scanf("%d %d %d %d %d %d", &inputNum[0], &inputNum[1], &inputNum[2], &inputNum[3], &inputNum[4], &inputNum[5]);
    printResult(lottoNum, inputNum);
    system("pause");
    return 0;
}