문제는


로또를 n개의 셋트를 입력받아서 하는거야.


로또와 똑같이 같은 셋트 안에선 중복이면 안되겠찌!


문제는 내가


다했는데


난수의 초기값이 달라지지가 않아...


어떻게 난수의 초기값을 달라지게 해야될지 모르겠어.


ㅊ첫번째 함수는 로또 함수 안


#include<stdio.h> 

#include<stdlib.h> 

#include<time.h> 

static int lotto_num[6];



int lottocheck(int temp); (로또 한셋트 안에 중복되는게 있는지 체크하는 함수)


void get_lotto(unsigned int n)

{

int i, a;

int temp;

srand(time(NULL));

                                            //////////////여기서 내가 초기값을 for함수 밖에다 놨다는거 잘못됬단거 알겠어. 근데 여기서 만약 srand(time(NULL)); 와 lotto_num[0] = (rand() % 45) + 1;를 for (a = 0; a < n; a++) 이렇게 넣ㅇ는다고 초기값이 달라지지도 않고    이상하게 난수발생도 3개셋트 간격으로 똑같은게 나오더라고..9개 셋트 발생시키면 123 123 123 이런식으로 똑같이 나옴.. 



lotto_num[0] = (rand() % 45) + 1;


for (a = 0; a < n; a++)

{

for (i = 0; i < 6; i++)

{

temp = (rand() % 45) + 1;

while (lottocheck(temp)==0)

{


temp = (rand() % 45) + 1;

}


if (temp != lotto_num[i])

lotto_num[i + 1] = temp;




}

printf("#%d", a + 1);

for (i = 0; i < 6; i++)


printf("  %d ", lotto_num[i]);

printf(" ");



}

}


int lottocheck(int temp)

{

int i,a=1;                          /*a=1이면 중복되는 수가 없는것이다.*/

for (i = 0; i < 6; i++)

{

if (temp == lotto_num[i])          

a = 0;                             



}  

if (a == 1)                       /*중복되는 수가 없으면 1로 리턴,있으면 0으로 리턴한다.*/

return 1;

else

return 0;




}



int main()

{

int n;

scanf_s("%d", &n);

get_lotto(n);


return 0;

}


한번만 도와주라...