srand와 rand를 이용해 배열에 각각 다른수를 저장하도록 만드는 프로그램입니다.
들찬길
#include stdio.h
#include stdlib.h
#include time.h
#define MAX_SIZE 10
int main(void)
{
int i,j;
int gene_num;
int gene_num_array[MAX_SIZE] = {0,};
for(i=0; iMAX_SIZE; i++){
srand((unsigned int) time(0));
gene_num = rand()%100+1;
for(j=0; j=i; j++){ //인덱스 j를 따라 움직이는데 이때값이 0인 인덱스를 찾으면 그 인덱스에 생성된 번호를 투입.
if(gene_num_array[j] == 0) gene_num_array[j] = gene_num;
else if(gene_num == gene_num_array[j]){ // 생성한 번호와 기존 인덱스에 있는 번호가 같으면
srand((unsigned) time(0)) // 재생성
gene_num = rand()%100+1;
} elsecontinue; //j쪽 루프로 돌아서 다시 비교...
}
printf(%d ,gene_num_array[i]);
}
return 0;
}
이렇게 실행시키면 같은 숫자만 찍힙니다.
분명 다르게 할려는 조건을 이렇게까지 만들었는데도 실행결과가 한가지 수로만 찍히니 답답할 따름입니다...
어떻게 해결해야 할까요?
그리고 이 방법으로 랜덤하게 수를 생성시켜 보니까 일정 시간에 따라서 계속 똑같이 증가하는 형태로만 나타나고 있습니다.
컨트롤+f5로 실행 그리고 바로 키를 눌러 종료한후에 그 즉시 컨트롤+f5로 실행하면 제가 간격을 비슷하게 해서인지 3씩 계속 증가하는 식으로밖에 나타나지가 않더군요.
조금 더 디테일하게 수를 생성해내는 방법은 없을까요?
덧
번호 추출을 여러번 반복시키게 프로그램을 바꾸니까 이번엔 추출된 10개의 수가 매번 똑같게 반복됩니다. 이 방법가지 해결을 좀 봐야겠습니다.
-
이리온 2023-06-04
srand 함수는 main 함수 처음에 한 번만 있어야 됩니다.
-
회전력 2023-06-04
계속 증가하는건 난수를 제대로 입력을 안해서 입니다.
-
이든샘 2023-06-04
아.. 잘못됬군요.. gene_num = rand()%100+1; 가 아닙니다.
난수는 난수 = rand() % (종료값 - 시작값 + 1) + 시작값 입니다.
그런데 지금은 rand() % 종료값 과 1만 더한것 같습니다만..
죄송합니다. 도움이 되지 못해서.
저 초보 (퍽퍽)
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2652779 | 문자열의 주소값 출력에 대해서 질문드립니다. | 핑크펄 | 2024-04-25 |
2652748 | 좀 도와주세요 ㅠ | 연체리 | 2024-04-25 |
2652719 | 다음프로그램의 실행결과를 알아보자.. (6) | 분홍이 | 2024-04-25 |
2652641 | 소인수프로그램 오류 (1) | 모람 | 2024-04-24 |
2652555 | 다이아 몬드 설명좀 부탁드립니다 | 갈기슭 | 2024-04-23 |
2652529 | 반복문을 .... (1) | 우시 | 2024-04-23 |
2652417 | 방향키로 커서이동 | 목소리 | 2024-04-22 |
2652339 | 구조체끼리 연결 왜 안될까요? (1) | 도담 | 2024-04-21 |
2652315 | 제발 도와주세요(실행파일까지첨부) | 은소라 | 2024-04-21 |
2652285 | 면산적님 질문요 (1) | 세찬 | 2024-04-21 |
2652253 | 다중루프를 이용한 이등변 삼각형 만들기 질문이요. | 알프레드 | 2024-04-20 |
2652226 | 결과 값이 무조건0 으로 나옵니다...... (5) | 빗줄기 | 2024-04-20 |
2652198 | 연결 list 질문요~ | Sweeety | 2024-04-20 |
2652168 | 배열 정렬에서.. (6) | 비 | 2024-04-20 |
2652137 | scanf에서 나는 의문점입니다 (2) | 말글 | 2024-04-19 |
2652084 | timeGetTime질문이요 | 환찬 | 2024-04-19 |
2652058 | 포인터의 기본적인 질문입니다! (3) | 해뜰참 | 2024-04-19 |
2652031 | 더블포인터.... (1) | 눈 | 2024-04-18 |
2652003 | bmp 파일 이미지 축소와 픽셀 줄이기 코드짜는법!!! (1) | PinkPearl | 2024-04-18 |
2651981 | system("taskkill")명령어는 안전한 명령어인가요? | 수예 | 2024-04-18 |