C언어 - 로또 번호 생성 프로그램 만들기 [1일차] (2024)

Daily

C언어 - 로또 번호 생성 프로그램 만들기 [1일차]

개발 하고싶은 개발자 2022. 2. 21. 0:36

URL 복사 이웃추가

본문 기타 기능

신고하기

로또 번호 생성 프로그램 만들기

오늘의 목표

1. 잊혀졌던 C언어 문법 기억 되살리기

2. 프로그램언어 감각 되살리기

성공

배열 초기화 함수

void initialization(int *number) {int i = 0;for (i = 0; i < 6; i++) {number[i] = 0;}}

스왑 함수

배열 출력 함수(배열 합까지)

void show(int* number) {int i = 0;int sum = 0;printf("Lucky numbers is ");for (i = 0; i < 6; i++) {printf("%d ", number[i]);sum = sum + number[i];}printf("\n-------------------------\nThe sum of numbers is %d\n\n", sum);}

배열 정렬 함수 (버블 소팅)

void sort_num(int* number) {int i = 0;int j = 0;for (i = 0; i < 6; i++) {for (j = i + 1; j < 6; j++) {if (number[i] > number[j]) {swap(&number[i], &number[j]);}}}}

번호 생성 함수( 랜덤 값 생성 후 정렬, 중복 제거, 예외번호 설정 (코드 직접 입력))

void create_number(int* number) {int i = 0;int j = 0;int exception=40;int flag = 0;for (i = 0; i < 6; i++) {number[i] = rand() % 45 + 1;if (number[i] == exception) {i--;flag = 1;flag--;}// Remove duplicatesif (i > 0 && flag == 0) {for (j = i - 1; j >= 0; j--) {if (number[i] == number[j]) {i = i - 1;j = -1;}}}}sort_num(number);}

로또 번호 비교

int compare(int* a, int* b) {int i = 0;int j = 0;for (i = 0; i < 6; i++) {for (j = 0; j < 6; j++) {if (a[i] == b[j]) {return 1;}}}return 0;}

번호합 100이하, 161이상 제거

int sum_compare(int* number) {int i = 0;int sum = 0;for (i = 0; i < 6; i++) {sum = sum + number[i];}if (sum < 101 || sum > 160) {return 1;}return 0;}

메인함수

void main() {// Create variables// 'lotto_number' is a variable that contains a lottery number// 'i' is a variable for the repeat statementint last_number[5][6];int i=0;int j = 0;int flag = 0;//Initaializationfor (i = 0; i < 5; i++) {initialization(last_number[i]);}srand((unsigned)time(NULL));for (i = 0; i < 5; i++) {create_number(last_number[i]);if (sum_compare(last_number[i]) == 1) {i--;flag = 1;flag--;}else if (i > 0 && flag == 0) {for (j = i - 1; j >= 0; j--) {flag = compare(last_number[i], last_number[j]);if (flag == 1) {i = i - 1;j = -1;flag--;}}}}for (i = 0; i < 5; i++) {show(last_number[i]);}}

추가하고 싶은 것

malloc으로 동적할당

예외번호 사용자 입력

Excell 연동을 통한 역대 로또 번호 비교 제외

추첨 번호 저장

코드 전문

/*Lottery number creation programWritten by : Park jaehyeondate : 2022-02-20*/#include <stdio.h>#include <stdlib.h>#include <time.h>void initialization(int* number) {int i = 0;for (i = 0; i < 6; i++) {number[i] = 0;}}void swap(int* a, int* b) {int temp = 0;temp = *a;*a = *b;*b = temp;}void show(int* number) {int i = 0;int sum = 0;printf("Lucky numbers is ");for (i = 0; i < 6; i++) {printf("%d ", number[i]);sum = sum + number[i];}printf("\n-------------------------\nThe sum of numbers is %d\n\n", sum);}void sort_num(int* number) {int i = 0;int j = 0;for (i = 0; i < 6; i++) {for (j = i + 1; j < 6; j++) {if (number[i] > number[j]) {swap(&number[i], &number[j]);}}}}void create_number(int* number) {int i = 0;int j = 0;int exception=40;int flag = 0;for (i = 0; i < 6; i++) {number[i] = rand() % 45 + 1;if (number[i] == exception) {i--;flag = 1;flag--;}// Remove duplicatesif (i > 0 && flag == 0) {for (j = i - 1; j >= 0; j--) {if (number[i] == number[j]) {i = i - 1;j = -1;}}}}sort_num(number);}int compare(int* a, int* b) {int i = 0;int j = 0;for (i = 0; i < 6; i++) {for (j = 0; j < 6; j++) {if (a[i] == b[j]) {return 1;}}}return 0;}int sum_compare(int* number) {int i = 0;int sum = 0;for (i = 0; i < 6; i++) {sum = sum + number[i];}if (sum < 101 || sum > 160) {return 1;}return 0;}void main() {// Create variables// 'lotto_number' is a variable that contains a lottery number// 'i' is a variable for the repeat statementint last_number[5][6];int i=0;int j = 0;int flag = 0;//Initaializationfor (i = 0; i < 5; i++) {initialization(last_number[i]);}srand((unsigned)time(NULL));for (i = 0; i < 5; i++) {create_number(last_number[i]);if (sum_compare(last_number[i]) == 1) {i--;flag = 1;flag--;}else if (i > 0 && flag == 0) {for (j = i - 1; j >= 0; j--) {flag = compare(last_number[i], last_number[j]);if (flag == 1) {i = i - 1;j = -1;flag--;}}}}for (i = 0; i < 5; i++) {show(last_number[i]);}}

결과

1. 30개의 숫자 중 겹치는 숫자는 1개도 없음

2. 번호 40은 제외시켰음

3. 번호합이 101~160안에 들어오는 조합만 추출하였음.

저작자 명시 필수영리적 사용 불가내용 변경 불가

저작자 명시 필수- 영리적 사용 불가- 내용 변경 불가

공감이 글에 공감한 블로거 열고 닫기

댓글쓰기 이 글에 댓글 단 블로거 열고 닫기

인쇄

C언어 - 로또 번호 생성 프로그램 만들기 [1일차] (2024)

References

Top Articles
Latest Posts
Article information

Author: Saturnina Altenwerth DVM

Last Updated:

Views: 5437

Rating: 4.3 / 5 (64 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Saturnina Altenwerth DVM

Birthday: 1992-08-21

Address: Apt. 237 662 Haag Mills, East Verenaport, MO 57071-5493

Phone: +331850833384

Job: District Real-Estate Architect

Hobby: Skateboarding, Taxidermy, Air sports, Painting, Knife making, Letterboxing, Inline skating

Introduction: My name is Saturnina Altenwerth DVM, I am a witty, perfect, combative, beautiful, determined, fancy, determined person who loves writing and wants to share my knowledge and understanding with you.