#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define SIZE 10
int main(void)
{
int manynumber[SIZE] = { 0 };
int i, j;
srand((unsigned)time(NULL));
for (i = 0; i<100; i++){
j = rand() % SIZE;
manynumber[j]++;}
for (i = 0; i<SIZE; i++){
printf("%d => %d회\n", i, manynumber[i]);}
j = 0;
for (i = 1; i<SIZE; i++){
if (manynumber[j] < manynumber[i]){
j = i;}
}
printf("가장 많이 생성된 숫자는 %d이며 횟수는 %d회입니다\n", j, manynumber[j]);
return 0;
}
0-9까지 난수 100회 생성해서 제일 많이 생성된 수를 출력하는건데요
저기서 srand함수가 왜 쓰였는지 잘 모르겠어요
검색해보니까 그냥 rand함수만 쓰면 실행할때마다 숫자가 바뀌는게 아니라 계속 똑같이 나와서 srand를 쓰는거 같은데
srand랑 rand랑 무슨 관계가 있길래
srand를 썼다고 rand에서 숫자가 계속 바뀌어서 나올수 있는건가요??
아 그리고 int manynumber[SIZE] = { 0 }; 이렇게 하면
manynumber[0]부터 manynumber[9]까지 값이 다 0으로 초기화 되는건가요?
키워드 의사난수다에요? - DCW
rand함수가 난수표에서 수를 찝어서 반환하는데 컴퓨터는 단순해서 임의로 난수표에서 아무거나 고르지 못함 ㅇㅇ 그래서 시간 time이라는 씨드값을 설정해서 프로그램 재실행하면 매번 같은값이 안나오게할수잇는거
time은 1980년인가 그때부터 현재까지 지나온 시간을 계산함 그래서 지금도 시간은 계속흐르기땜에 정말 랜덤으로 되는겨