rand함수에 대해서 질문드려요~
차나
2023.04.01
질문 제목 : rand함수에 대해서 질문드려요~rand함수에 대해서 질문드려요~질문 내용 :
#include stdio.h
#include stdlib.h
#include time.h
void get_rand(int n);
void main()
{
int n=100;
srand(time(null));
get_rand(n);
}
void get_rand(int n)
{
int arr[10]={0};
int i,j;
for(i=0;i10;i++)
{
arr[i]=rand()%n;
for(j=0;ji;j++)
{
if(arr[i]==arr[j])
break;
}
if(i==0)
printf(%d ,arr[i]);
else if(arr[i]==arr[j])
i--;
else
printf(%d ,arr[i]);
}
printf(\n);
}
0~99까지 사이의 랜덤수를 10개 출력하는 건데요.
중복되는것들은 빼고 출력하는건데 ...
이상하게 1개 만 출력되고 어쩔떄는 2~3개만 출력되구여 10개가 출력이 안되네요.
어디가 잘못됫을까요?
-
빵돌
i를 증가시키면서 arr[i]에다가 난수를 대입하시는데
arr[j]는 모두 0이 대입해 있을테고 그래서 100개의 랜덤숫자에서 0이 나오지 않는다면 계속 출력이 될텐데
0이 나와서 break걸리는거 아닐까여??