아... 또 탄식하시면서 오셨을텐데, 이건 그런거 아닙니다. 저얼대요. string.h 생각하지 마세요. 훨씬 더 쉽습니다. time.h는 대표적으로 난수 발생(rand) 함수가 있는데, 이걸 이용할 것입니다.
#include <stdio.h> #include <stdlib.h> int main(){ int a[10], i; srand(time(NULL)); for (i = 0; i < 10; i++) a[i] = rand() % 50; for (i = 0; i < 10; i++) printf("%d\n", a[i]); }
자, 해석 들어갈게요
일단 배열 a를 정해두고, 반복변수 i를 정할 것입니다. 여기 뒤에 요상한 코드가 있는데, 이 코드는 랜덤 함수(rand)를 이용할 것이라는 준비단계입니다. 이 srand를 안 한다면 rand를 못 쓰지요. 이 괄호 안에 time(NULL)은 그냥 '이게 그 난수 정하는 거구나'라고 생각하시면 되요. 여기 NULL은 조금 다른 뜻입니다.
다음 반복문을 돌려서 a에 난수를 집어넣고, 출력합니다. 여기에서 % 50은 'rand()를 50으로 나눈 나머지'라고 보시면 됩니다. 그러니까 rand()는 어떤 수든 만듭니다. 1억이 넘을 수도 있죠. 그런데 50으로 나눈 나머지로 설정을 하면 무조건 난수의 값은 0~49까지 됩니다. 잘 이해가 안 되신다면 괜찮습니다. 이건 수학이거든요^^;