더북(TheBook)

6.6.3 약병 조합과 결과를 화면에 표시하기

회차당 조합할 약병 개수와 번호를 선택했으니 선택한 내용과 테스트 결과를 화면에 출력해 사용자에게 보여 줍니다. 먼저 선택한 내용을 표시해 봅시다.

bottle 배열에서 요소의 값이 1이면 조합할 약병으로 선택됐다는 의미입니다. 따라서 for 문으로 bottle 배열을 돌며 요소의 값이 1인지 확인합니다. 변수 i, j는 앞에서 사용했으므로 여기서는 k를 사용합니다.

bottle 배열의 값이 1이면 해당 약병 번호를 출력해 화면에 표시합니다. 이때 약병 번호는 배열의 인덱스 k가 아니라 k + 1로 출력합니다. 배열의 인덱스는 0부터 시작해서 그대로 사용하면 0, 1, 2, 3을 출력합니다. 화면에 보여 줄 때는 1, 2, 3, 4번으로 표시되도록 + 1을 해야 합니다.

printf()문으로 선택된 약병 번호와 연결할 안내 문구를 출력합니다.

6.6 프로젝트.c

for (int i = 1; i <= 3; i++) {
    (중략)
    for (int j = 0; j < cntShowBottle; j++) { (중략) }
    // 사용자에게 테스트 결과 표시
    for (int k = 0; k < 4; k++) { ---------------- ➊ bottle 배열의 값 확인
        if (bottle[k] == 1) { -------------------- ➋ 선택된 약병인지 확인
            printf("%d ", k + 1); // 인덱스 + 1, %d 뒤에 빈칸 하나 넣기
        }
    }
    printf("번 물약을 머리에 바릅니다.\n\n"); ---- ➌ 안내 문구 출력
} 
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.