[C] 로또 번호 생성기

Wook's Notepad·2022년 1월 31일
0

"로또 = 자동"이라는 굳은 신념을 가진 나와 같은 사람들을 위한 코드

스킬이 부족해 코드가 효율적이지 못합니다.
기초부터 복습하는 과정이라 혹시 지적사항이 보인다면 피드백 남겨주세요!

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

void print_Lotto(int arr[],int i, int j);
int make_num(int arr[],int i,int j,int n,int is);

int main(void){
	int arr[6];
	int n,i=0, j,is=0;
	int game = 0;
	srand((unsigned int)time(NULL));
	
	printf("로또 번호 생성기 입니다\n");
	printf("구매 금액을 입력해주세요: ");
	scanf("%d",&game);
	if(game%1000 != 0){
		printf("로또는 1000원 단위로 구매 할 수 있습니다.\n");
		printf("구매 금액을 입력해주세요: ");
		scanf("%d",&game);
	}
	
	printf("\n[로또 번호]\n");
	for(int k=0; k<game/1000; k++){
		for(i=0; i<6; i++){
			arr[i] = rand() % 45 + 1;
            //로또 번호는 1~45 이므로 생성되는 난수범위 0~44 에 +1을 해준다.
			make_num(arr,i,j,n,is);
		}
		printf("%d번째 게임 : ",k+1);
		print_Lotto(arr,i,j);
	}
	return 0;
}

//로또 번호(난수)를 생성하는 함수
int make_num(int arr[],int i, int j, int n, int is){
	for(j=0; j<i; j++){
		if(arr[i]==arr[j]){
			arr[i] = rand()% 45 + 1;
            //6개의 난수 중 중복되는 숫자가 발생하면, 해당 배열을 다시 생성
		}
	}
}

//생성한 로또 번호를 출력하는 함수
void print_Lotto(int arr[],int i, int j){
	int temp, least;
	
	for(i=0; i<5; i++){
		least = i;
		for(j=i+1; j<6; j++)
			if(arr[j] < arr[least])
				least = j;
		temp = arr[i];
		arr[i] = arr[least];
		arr[least] = temp;
	}
	
	for(i=0; i<6; i++){
		printf("%d ",arr[i]);
	}
	printf("\n");
}

0개의 댓글