이거 왜이렇게되나 해석점해주세요
귀염포텐
2023.04.01
#include stdio.h#include stdlib.h#include time.h
int main(){ int r,i=0;
srand((int)time(NULL)); while(i100) { for(r=rand();r3||r1;) //이부분입니다 r=rand()%10; //여기까지 printf(%d \n,r); i++; }
return 0;}
저위의 for문은 해석점해주시겠어요??r이 5를 입력받아 들어가면 다시 난수 0~9가 대입되는 거아닌가요???그리고 처음부분에 0r4보다 작아야 하는거 아닌가요???
-
재찬
답변 달리기 에매한게 코드를 올려놓고 왜 이 코드가 이런지 따지는 상황이라 선후가 바뀐거 같습니다.
단순 해석하자면 최초 r=rand()값을 얻어놓는데 r이 3보다 크거나 또는 1보다 작은 값일때 참이므로 매우 높은 확률로 참일 것입니다. 그 이후는 0~9 범위의 랜덤값을 구하다 r이 1~3인 값이 나올때 for문을 탈출합니다.