使用结构体编程实现:为某游戏定义一个结构体类型来描述游戏角色,该结构体类型包括以下四个成员:ID、性别、等级、能力值。游戏角色的初始等级为1级,能力值为100.00,游戏角色的能力值每级增长15%。定义一个根据等级求能力值的函数,要求用户在主函数中输入角色ID和性别,并在主函数中提示用户输入等级,调用求能力值的函数求取对应等级的能力值返回给主函数,然后在主函数中输出该角色的所有信息。
性别只能输入数字才能输出,用中文字符不能输出是为什么?怎么修改
#include <stdio.h>
//定义游戏角色结构体
struct GameCharacter
{
int ID;
char gender;
int level;
float abilityValue;
};
//根据等级求能力值函数
float getAbilityValue(int level)
{
float abilityValue = 100.00;
for (int i = 1; i < level; i++)
{
abilityValue *= 1.15;
}
return abilityValue;
}
int main()
{
//定义游戏角色
struct GameCharacter character;
//输入角色ID和性别
printf("请输入游戏角色的ID:");
scanf("%d", &character.ID);
printf("请输入游戏角色的性别:");
scanf(" %c", &character.gender);
//提示用户输入等级
printf("请输入游戏角色的等级:");
int level;
scanf("%d", &level);
//调用求能力值函数
character.level = level;
character.abilityValue = getAbilityValue(level);
//输出角色信息
printf("游戏角色的ID为:%d\n", character.ID);
printf("游戏角色的性别为:%c\n", character.gender);
printf("游戏角色的等级为:%d\n", character.level);
printf("游戏角色的能力值为:%.2f\n", character.abilityValue);
return 0;
}