c언어 2차원 배열의 중복 없이 난수 저장

c언어 2차원 배열의 중복 없이 난수 저장

작성일 2023.08.07댓글 1건
    게시물 수정 , 삭제는 로그인 필요

profile_image 익명 작성일 -

중복 없는 수열을

미리 만들어 놓고

거기서 하나씩 빼오면 됩니다.

범위가 넓으면 이미 선택된 수에

마킹을 해두고 마킹되지 않은 수가

선택될 때까지 돌리는 방법도 있죠.

이 두가지는 메모리를 조금 더 먹지만

중복 검사하는 시간을 매우 짧게 만들 수 있죠.

메모리가 부족하면 하나하나 비교하는 수 밖에..

#include <time.h> #include <stdio.h> #include <stdlib.h> int main() { int arr[5][7], A, i, j; int chk[32768] = { 0, }; srand((unsigned)time(NULL)); for (i = 0; i < 5; i++) { for (j = 0; j < 7; j++) { while (chk[A = rand() % 32768]); chk[A] = 1; arr[i][j] = A; } } for (i = 0; i < 5; i++) { for (j = 0; j < 7; j++) { printf("%5d ", arr[i][j]); } puts(""); } return 0; }

c언어 2차원 배열의 중복 없이 난수 저장

c언어 2차원 배열중복없이 난수 생성해서 저장하고 싶은데 코드 어떻게 짜야될까요? 중복 없는 수열을 미리 만들어 놓고 거기서 하나씩 빼오면 됩니다. 범위가 넓으면...

c언어 2차원 배열 난수 중복제거

4X6의 2차원 배열에 랜덤으로 1부터 24 까지의 난수를 발생시켜서 중복수가 안나오게 4중 for을 사용해서 만들어야 하는데 잘 몰르겠습니다 ㅠ 1부터...

c언어 2차원 배열 중복검사문제

... rotto[i][j]=a;//배열에 임의의 난수저장 for(x=0;x<j;x++)//중복제거를 위한 코드 if(rotto[i][j]==rotto[i][x]){ j--; break; } } } 제가 짠 2차원배열 코드 일부분...