55.5 연습문제: 게임 캐릭터 구조체 만들기

다음 소스 코드를 완성하여 334 1.240000가 출력되게 만드세요.

practice_define_struct_champion.c

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

struct Stats {
    float health;
    float healthRegen;
    unsigned int mana;
    float manaRegen;
    float range;
    float attackDamage;
    float armor;
    float attackSpeed;
    float magicResist;
    unsigned int movementSpeed;
};

struct Champion {
    char name[20];
    ______________________________
    float abilityPower;
};

int main()
{
    struct Champion lux;

    strcpy(lux.name, "Lux");
    lux.stats.health = 477.72f;
    lux.stats.healthRegen = 1.08f;
    lux.stats.mana = 334;
    lux.stats.manaRegen = 1.24f;
    lux.stats.range = 550;
    lux.stats.attackDamage = 55.5f;
    lux.stats.attackSpeed = 0.625f;
    lux.stats.armor = 18.72f;
    lux.stats.magicResist = 30;
    lux.stats.movementSpeed = 330;
    lux.abilityPower = 0;
    
    printf("%u %f\n", lux.stats.mana, lux.stats.manaRegen);

    return 0;
}

실행 결과

334 1.240000

정답

struct Stats stats;

해설

구조체 멤버에 접근할 때 lux.stats.mana처럼 접근하고 있으므로 stats는 일반 변수입니다. 따라서 Champion 구조체 안에서 struct Stats stats;처럼 변수를 선언해줍니다.