문제는
로또를 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;
}
한번만 도와주라...
2만 5천원 되시겠습니다.
http://ideone.com/TVvKGt
시딩값을 다르게 해야함
밤12시내로 업로드하는 과제 내주는 교수들 개 극혐 ...