더북(TheBook)

어항의 물은 계속 증발하다가 물 높이가 0이 되면 더 이상 줄어들지 못하겠죠. 물 높이가 음수일 수는 없으니까요. 따라서 arrayFish[i]의 값이 0보다 작으면 arrayFish[i]의 값을 0으로 저장하고 다음 어항으로 넘어갑니다.

함수를 정의하고 나면 main()함수에서 호출합니다. 이때 최근 경과 시간인 prevElapsedTime 변수를 전달합니다.

7.4 프로젝트.c

(생략)
void decreaseWater(long elapsedTime); ------- ➊ 어항의 물을 증발(감소)시키는 함수 선언

int main(void) {
    (중략)
    while (1) {
        (중략)
        prevElapsedTime = totalElapsedTime - prevElapsedTime; 
        printf("최근 경과 시간 : %ld초\n", prevElapsedTime);
        decreaseWater(prevElapsedTime); ----- ➎ 어항의 물을 증발(감소)시키는 함수 호출
    }  
    return 0;
}

(중략)

void decreaseWater(long elapsedTime) { ------ ➋ 어항의 물을 증발(감소)시키는 함수 정의
    for (int i = 0; i < 6; i++) { // 어항 6개 반복 수행
        arrayFish[i] -= (level * 3 * (int)elapsedTime); ---- ➌ 증발하는 물의 양 계산
        if (arrayFish[i] < 0) { ---------------------------- ➍ 물 높이가 0 미만이면 물 높이는 0으로 고정
            arrayFish[i] = 0;
        }
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.