반응형
C언어 랜덤 함수
간단 설명:
rand() % (어떤 수)
-> (어떤 수) 만큼 랜덤으로 숫자를 뽑음.
srand(time(NULL))
-> 난수 초기화. 난수 초기화를 안 할 경우 컴파일할 때마다 결괏값이 같게 나옴.
예제 1) 간단 예제
#include <stdio.h>
#include <stdlib.h> //rand, srand가 포함된 헤더파일
#include <time.h> // time이 포함된 헤더파일
int main(){
int i;
srand(time(NULL)); // 난수 초기화, 안할 경우 결과값이 계속 같게 나옴.
for(i=0; i<10 ; i++){
int num = rand() % 5;
printf("%3d",num); //0~4까지의 숫자가 10번 무작위로 나옴.
}
return 0;
}
예제 2) 배열과 랜덤 함수를 사용한 3 자릿수 로또번호 만들기.
#include <stdio.h>
#include <stdlib.h> //rand, srand가 포함된 헤더파일
#include <time.h> // time이 포함된 헤더파일
#define NUM 3
int main(){
int i;
int a[NUM];
int b[NUM]={2,1,3};
for(;;){
int menu;
srand(time(NULL)); // 난수 초기화, 안할 경우 결과값이 계속 같게 나옴.
printf("\n로또번호를 뽑으려면 1번을 입력하시오.(나가기는 아무숫자.)\n");
printf("선택>>>>>>>");
scanf("%d",&menu);
printf("\n");
if(menu==1){
int tmp=0;
for(i=0; i<NUM ; i++){
a[i] = rand() % NUM+1;
//+1을 했으므로 1~5까지의 숫자가 10번 무작위로 나옴.
printf("%3d",a[i]);
}// for(i=0; i<NUM ; i++)
for(i=0;i<NUM;i++){
if(a[i]==b[i]){
tmp++;
}
}// for(i=0;i<NUM;i++)
if(tmp==NUM){
printf("\n당첨되었습니다!!\n");
}else{
printf("\n꽝!\n");
}
}//if(menu==1){
else{
break;
}
}
return 0;
}
반응형
'C언어 > C언어 문법' 카테고리의 다른 글
C언어 - for문/C언어 for 반복문/C언어 for문/for 무한 반복문 - 예제 (0) | 2021.04.20 |
---|---|
C언어 - strlen 문자열 길이반환/c언어 문자열 길이반환/strlen예제/자주 쓰이는 문자열 함수 정리 (0) | 2021.04.16 |
C언어 - strcmp 문자열 비교/c언어 문자열 비교/strcmp예제/자주 쓰이는 문자열 함수 정리 (0) | 2021.04.14 |
C언어 - strcat 문자열 연결/c언어 문자열 이어붙이기/strcat예제/자주 쓰이는 문자열 함수 정리 (0) | 2021.04.13 |
C언어 - strcpy 문자열 복사하기/c언어 문자열 복사/strcpy예제/자주 쓰이는 문자열 함수 정리 (0) | 2021.04.12 |
댓글