게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
몇일째 고민중인 문제입니다. 힌트만 살짝 주실 수 있으실까요?
게시물ID : programmer_17891짧은주소 복사하기
작성자 : 1인분을못해
추천 : 0
조회수 : 536회
댓글수 : 11개
등록시간 : 2016/07/14 13:22:52
옵션
  • 본인삭제금지
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가 될때까지 계속 반복하도록 하면 해결될것 같았는데 안되네요..

해답을 어떻게든 생각해내고 싶은데 살짝 힌트라도 주실 수 있으실까요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호