반응형
로또번호 생성 코드 ↓
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, j;
int lotto[6];
srand(time(NULL));
for(i=1;i<6;i++)
{
lotto[i] = rand()% 45 +1;
for(j=1;j<i;j++)
{
if(lotto[i]==lotto[j])
{
i--;
break;
}
}
}
for(i=1;i<7;i++)
{
printf("%5d",lotto[i]);
}
printf("\n");
return 0;
}
|
rand, srand함수는 랜덤한 수를 만들기 위해 사용합니다.
rand()함수는 0과 RAND_MAX사이의 유사난수 정수를 리턴합니다.
srand()함수는 인자를 rand()함수가 반환하는 유사난수 정수의 새로운 값들을 위한 시드로 설정하고 이 값들은 같은 시드 값으로 srand()함수를 호출하여 반복합니다.
시드값으로 현재 시간을 넣어 난수를 생성합니다. time()함수에서 반환되는 값을 srand()함수의 인자로 주면 랜덤한 값을 얻을 수 있습니다.
타임함수는 시간을 초 단위로 계산하여 1970년 1월 1일 0시0분0초 이후의 시간을 리턴해줍니다.
rand, srand함수는 사용하기 위해서는 stdlib.h 헤더파일을 추가하고, time함수를 사용하기 위해서는 time.h헤더파일을 코드에 추가하여야합니다.
vi에디터에서 커서를 함수에 대고 shift + k를 눌러서 확인해보자, 사용법이 나온다! 아니면 man 페이지로 확인하자
rand() % 45 +1; 로또 번호는 총 1~ 45개 이므로 rand() % 45에서 +1을 해줬습니다. +1을 안해주면 0~ 44개의 난수가 발생합니다.
그리고 중복값을 체크해주기 위해서 for문과 if문을 for문안에 추가하여 중복체크를 해주었습니다.
출력결과
반응형
'❌이전글 > 이전글' 카테고리의 다른 글
자바JAVA - 배열 사용 array (2) | 2019.10.13 |
---|---|
쉘스크립트 bash 쉘 작성과 실행 (0) | 2019.10.12 |
CSMA/CD 프로토콜이란??? (0) | 2019.10.11 |
LVM구성해보기_CentOS7 (0) | 2019.09.16 |
CentOS7에서 gcc로 c언어 컴파일해보기 (2) | 2019.09.04 |
LAN과 WAN의 차이점 (2) | 2019.08.27 |
네트워크 통신방식 유니캐스트/브로드캐스트/멀티캐스트 (0) | 2019.08.14 |
라우터 장비 IP 설정하기 (0) | 2019.08.13 |