Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #로또번호생성 #로또번호만들기 #중복제거 #중복제거알고리즘
- #FAT파일시스템 #파일시스템구조 #파일시스템 #Forensic #정보보안 #IT
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #PUT메소드 #PUT #HTTP메소드 #취약점
- XSS #ReflectedXSS
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #C동적메모리할당 #malloc #메모리
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #bruteFource #무차별공격
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #SQLi #TimeBaseSQLi #sqlinjection
- C언어 #C #C프로그래밍 #프로그래밍 #언어
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #commandinjection
- 파일시스템과파티션 #포렌식 #사이버포렌식 #Encase #Forensic #파티션 #파일시스템 #정보보안
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #Call by value #Call by reference
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #CSRF #
- 포렌식 #사이버포렌식 #Forensic #정보보안 #IT
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터배열 #c언어포인터 #포인터 #c포인터
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #xss #storedxss #CrossSiteScripting
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #phpcodeinjection #injection
- c언어malloc #동적할당 #c언어동적할당 #c언어malloc사용하기
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #BrokenAuthentication
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터의포인터 #c언어2중포인터
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터와문자열 #c언어문자열
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #선택정렬 #선택정렬알고리즘
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c배열포인터 #c언어포인터 #c언어배열포인터 #배열포인터
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #포인터 #포인터변수 #c언어주소 #주소
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터 #c언어포인터연산
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #SQLi #sqlinjectioon
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c2차원배열동적할당 #c언어동적할당 #c동적할당 #c언어동적할당2차원배열
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #robots.txt #검색엔진노출
- c언어문자열처리방법 #c언어문자열
- 사이버포렌식 #포렌식 #FAT
Archives
- Today
- Total
Hello Security World
C언어 [로또번호 생성기 & 중복제거] 본문
로또 번호 생성기
로또 번호 생성에는 2가지의 알고리즘이 들어가야 한다 또한 숫자의 범위는 1~45까지 밖에 없다!
1. 중복제거 알고리즘
2. 오름차순 정렬 알고리즘
이 두 알고리즘과 rand 함수를 이용하여 로또 번호 생성기를 만들어보자.
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 65 66 67 68 69 70 71 72 73 74 75 76 77 | #include <stdio.h> #include <stdlib.h> #include <time.h> int overlap(int *lotto); //중복제거 함수 int sort(int *lotto); //정렬 함수 int print(int *lotto); int main() { srand(time(NULL)); // 매번 다른 시드값 생성 int lotto[6]; // 정수형 변수 선언 overlap(lotto); sort(lotto); print(lotto); return 0; } //중복제거 함수 int overlap(int* lotto) { int i,j,save; for(i=0;i<5;i++) { while(1) { lotto[i] = rand() % 45 + 1; save=0; //스위치 변수 for(j=0;j<i;j++) { if(lotto[i] == lotto[j]) // 중복값 확인 { save = 1; break; //중복값 확인시 for문 종료 } } if(save==0) { break; //스위치가 0이면 중복 X while문 종료 } } } return 0; } //정렬 함수 int sort(int *lotto) { int tmp,i,j; tmp=0; for(i=0;i<3;i++) // 2 / n(n-1)회전 { for(j=0;j<4;j++) { if(lotto[j] > lotto[j+1]) //오름차순 정렬시 [j] > [j+1] 클 경우 자리교환 { tmp = lotto[j]; lotto[j] = lotto[j+1]; lotto[j+1] = tmp; } } } return 0; } //출력함수 int print(int *lotto) { int k; for(k=0;k<5;k++) { printf("[%d]",lotto[k]); } return 0; } 출력결과 : [9][14][24][34][42] |
코드가 간결하진 않지만 나름대로 한번 짜보았다..
함수를 정의하여 출력함수,정렬함수,중복제거함수 총 3가지의 사용자 정의 함수를 만들고 각 함수 에서 해당 로직이
진행되게 하였다 로직 설명은 주석을 참조하자.
중복제거 함수
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 | int overlap(int* lotto) { int i,j,save; for(i=0;i<5;i++) { while(1) { lotto[i] = ((rand() % 45) + 1); save=0; //스위치 변수 for(j=0;j<i;j++) { if(lotto[i] == lotto[j]) // 중복값 확인 { save = 1; break; //중복값 확인시 for문 종료 } } if(save==0) { break; //스위치가 0이면 중복 X while문 종료 } } } return 0; } |
기회가 된다면 내가 만든 로또 추출기로 로또를 사봐야겠다.. 그렇다면 재밌는 IT공부를 안해도되니까 ^.^
'프로그래밍 > C' 카테고리의 다른 글
C언어 [C언어 포인터의 연산] (0) | 2020.05.03 |
---|---|
C언어 [C언어 주소와 & 포인터] (0) | 2020.05.03 |
C언어 [Call By Value & Call By Reference] (0) | 2020.05.03 |
C언어로 배우는 자료구조 [선택정렬] (0) | 2020.05.03 |
C언어로 배우는 자료구조 [버블정렬] (0) | 2020.05.03 |