20개의 양의 숫자(1~10)의 배열중 하나를 랜덤으로 -1로 바꾼뒤
두개의 숫자의 위치를 바꾸면서 연속된 같은 두개의 숫자가 나오면 그 두 수를 -1로 바꾼뒤
마지막에 남은 수가 무엇인지, 몇번째에 있는지에 대해 띄우는 문제를 풀고 있습니다.
다른 부분은 다 해결이 됬는데, 양의 숫자가 한개가 남았는지 확인하는 부분에서 막혀버렸네요.
int check_finish() {
int count = 0;
int i;
for (i = 0; i < 20; i++) {
if (card_arr[i] > 0)
count++;
}
if (count == 1)
return TRUE;
else
return FALSE;
}
몇가지 생각했던것 중에서 될 것 같았는데 안된던것인데..
순차탐색을 통해서 0보다 큰 수가 있을경우 카운트를 늘리고, 카운트가 1이면 TRUE를 다른 수면 FALSE를 리턴해서
do swap_arr();
while (check_finish() == TRUE);
do while문을 활용해 TRUE가 될때까지 계속 반복하도록 하면 해결될것 같았는데 안되네요..
해답을 어떻게든 생각해내고 싶은데 살짝 힌트라도 주실 수 있으실까요?
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.