동전을 던져 앞면이 나올 확률은 0.5이다. 동전 던지기를 충분히 여러번 반복하여 던지면 실제 앞면이 나오는 비율이 이론적 확률인 0.5에 가까워진다고 하자. 시행횟수를 입력하면 rand() 함수를 이용하여 총 시행횟수 중 동전의 앞면이 몇 번 나오는지 출력하는 프로그램을 작성하시오
<조건>
1. 시행횟수 입력 -> scanf
2. rand()함수 이용
3. 시행횟수 중 동전의 "앞면"이 몇 번 나오는지 출력
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//함수 선언
int n_rand();
int main()
{
// 동일한 난수 나오지 않도록 초기화
srand(time(NULL));
// 입력한 시행횟수 저장할 변수
int num;
printf("시행횟수 : ");
scanf("%d", &num);
// 앞뒷면 나온 결과 배열에 저장
int front_back[num];
//시행횟수만큼 반복하여 앞면, 뒷면 어떻게 나오는지 확인
for(int i=0; i<num; i++){
n_rand(); // 함수 실행
front_back[i]=n_rand(); // 리턴한 값을 배열에 넣음
printf("%d ", front_back[i]); // 배열 값 출력
}
int front=0;
for(int i=0; i<num; i++){
// 앞면(1)이 나오면 front값 증가
if(front_back[i]==1){
front++;
}
}
printf("\n%d번 시행한 결과, 앞면이 %d번 나왔습니다.", num, front);
return 0;
}
// 앞면인지 뒷면인지 계산하는 함수
int n_rand(){
return rand()%2;
}
<실행결과>
'언어 > C' 카테고리의 다른 글
최소값, 최대값, 순번 구하기 (0) | 2020.09.10 |
---|---|
입력값이 배열 요소인지 판별하는 프로그래밍 (0) | 2020.07.08 |
원의 둘레와 면적 구하기 (0) | 2020.06.20 |
계산 프로그램 (0) | 2020.06.10 |