더북(TheBook)

어떤 고양이를 뽑았는지 사용자에게 알려 줍니다. 이 부분도 함수로 처리합니다.

printCat()함수를 선언합니다. 이 함수는 뽑은 고양이 정보를 출력하므로 앞에서 뽑은 난수를 저장한 selected 변수를 전달받습니다. 전달값은 0~4의 정수이므로 int형이고, 출력만 하므로 반환값은 없습니다.

printCat()함수에서는 간단한 안내 문구와 함께 고양이 정보를 출력합니다. main()함수에서 뽑은 고양이 번호를 매개변수(selected)로 받아 구조체 배열 cats에서 매개변수의 값을 인덱스로 하는 멤버의 정보를 출력하면 됩니다. 구조체 멤버인 name, age, character, level은 마침표 연산자를 이용해 접근합니다. 이름과 특징은 문자열이므로 서식 지정자를 %s로, 나이와 레벨은 숫자이므로 %d로 작성합니다.

while 문 안에서 printCat()함수를 호출하면서 selected 변수를 전달합니다.

9.5 프로젝트.c

(생략)
void printCat(int selected);  -------- ➊ 뽑은 고양이 정보 출력 함수 선언

int main(void) {
    srand(time(NULL));
    initCats(); 
    while (1) {
        printf("두근두근! 어느 고양이의 집사가 될까요?\nEnter를 눌러 확인하세요!");
        getchar();
        int selected = rand() % 5; 
        printCat(selected); ---------- ➌ 뽑은 고양이 정보 출력 함수 호출
    }
    return 0;
}

void initCats() { (중략) } 

void printCat(int selected) {  ------- ➋ 뽑은 고양이 정보 출력 함수 정의
    printf("\n\n=== 당신은 다음 고양이의 집사가 됐어요! ===\n\n");
    printf(" 이름 : %s\n", cats[selected].name);
    printf(" 나이 : %d\n", cats[selected].age);
    printf(" 특징 : %s\n", cats[selected].character);
    printf(" 레벨 : %d\n", cats[selected].level);
} 
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.