티스토리 뷰
728x90
난수 = 랜덤 ( random value )
- 미리 정해져 있는 값이 아닌 임의로 생성 된 값
- 임의로 생성된 값을 가지고 특정 기능이나 모델을 검증하는 등의 다양한 형태로 활용 가능
- 라이브러리 추가
- <stdlib.h>
- <time.h>
- c 언어에서 rand() 함수로 랜덤함수를 실행 가능하다
- 하지만 한번 실행된 값이 변경 되진 않는다
- srand()로 시드를 지속적으로 변경 해줘야 함.
- 매번 새로운 값을 넣어 주기 위해 srand()에 시간을 넣어 준다.
#include <stdio.h>
#include <stdlib.h> <--- 랜덤 함수를 사용하기 위한 라이브러리
#include <time.h> <--- 진정한 랜덤함수를 만들기 위해 시간 라이브러리 추가
int main(void) {
// 프로그램을 실행할 때 마다 같은 값이 저장 됨
// srand() --> rand 함수가 가지는 재료 값을 바꿔줌 ( 시드 변경 )
// 하지만 이도 값을 주기적으로 바꿔주는게 아니다.. srand 에 주기적으로 새로운 값을 넣어줘야할 필요가 있음
// 이를 쉽게 해결하는 방법 시간으로 처리
unsigned int ctime = time(NULL); //
printf("%d\n", ctime);
srand(ctime);
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
return 0;
}중복 없는 로또 게임
// 입력 받은 게임 수 만큼 6개 번호 추출 로또 출력
// 중복 제거 추가
int gameCount;
int gameCountArray[6];
unsigned int sTime = time(NULL);
srand(sTime);
printf("게임 수를 입력하세요(1~10) : ");
scanf_s("%d", &gameCount);
for (int i = 1; i <= gameCount; i++) {
for (int j = 0; j <= 5; j++) {
gameCountArray[j] = (rand() % 45) + 1; // 랜덤 번호 입력
for (int k = 0; k < j; k++) {
if (gameCountArray[j] == gameCountArray[k]) { // 중복 번호가 있다면 j를 감소 시켜 다시 뽑기
j--; // 중복 값을 다시 받기 위해 j 감소
break; // 중복 발견하면 더 이상 반복필요 없으므로 종료하고 for int j 로 복귀 해서 다시 난수 생성
}
}
}
printf("%d번 게임 : ", i); // 입력 받은 수만큼 게임 실행
for (int k = 0; k <= 5; k++) {
printf("%d ", gameCountArray[k]);
}
printf("\n");
}- 바보 같이 for (int k = 0; k < j; k++) { 이 부분에서 삽질을 했는데..
- 처음에 길이에 숫자를 입력함.. 그렇게 되면 무조건 0부터 시작 해서 if 문 조건에 무조건 걸려서 무한루프 되는 경우 발생.. 이걸 이해를 못하는 바보 같은 실수를 함... 조건문을 j로 하면 if문 조건인 0 == 0번지 주소를 조사하게 되는 경우가 없음..
728x90
'C' 카테고리의 다른 글
| 문자열 함수 (0) | 2024.02.10 |
|---|---|
| Micorosoft Visual Studio 단축키 설정 (0) | 2024.02.08 |
| 문자열 , 문자열 포인터 (0) | 2024.02.02 |
| 함수포인터2 좀 더 상세 포인터 배열 조금 더 (0) | 2024.02.01 |
| 포인터와 함수, 포인터 배열 (1) | 2024.01.30 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 다중체크박스 처리
- reactStart
- 셀렉트박스
- SCP
- @Builder
- C
- 씹어먹는 C 언어
- th:selected
- selectbox
- mircrosoft visual studio
- 제약조건
- reactApp
- JPA
- 체크박스
- CheckBox
- 다른데서 react
- findFirstBy
- 셀프로젝트
- react 시작 오류
- @RequestParam
- ID
- @reqeustBody
- commit 에러
- optional
- React
- App
- 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 |
글 보관함
