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;처럼 변수를 선언해줍니다.