C语言结构体数组案例源码
结构体数组
#include <stdio.h>
#include <stdlib.h>
#define MAX 7
struct Hero
{
int id; //武将编号
char name [20]; //武将名字
char name2 [20]; //武将称号
int level; //等级
int damage; //攻击力
int hp; //生命值
int mp; //法力值
};
struct Skill
{
char skill[3][1000]; //技能
};
int main()
{
int i,j;
//使用结构体
//创建结构体数组并初始化
struct Hero heros[MAX]={
{1,"刘备","汉室后裔",100,100,100,100},
{2,"关羽","武神",100,110,100,90},
{3,"张飞","万人敌",100,110,110,80},
{4,"赵云","龙腾天下",100,140,100,100},
{5,"吕布","战神",100,150,100,100},
{6,"李逍遥","御剑天涯",100,110,100,120},
{7,"杨戬","二郎神",100,120,120,120}
};
struct Skill skills[MAX]={
{"【被动】仁德:当其他人攻击自己时,可以暂时增加自身生命值;当自己攻击其他人时,可以暂时增加攻击力。","【主动】双剑杀:挥舞双剑,对单个目标造成物理伤害。"},
{"【被动】刀魂:每次攻击可以吸收被攻击的力量,同时增加自己的攻击力。","【限定技】魂变:当因魂变积累的攻击力达到自身两倍时,产生一次致命打击,无视对方防具。"},
{"【主动】狂怒:对多个目标造成魔法伤害,并在目标身上产生“怒”印记,当印记到达三个时产生爆炸伤害。"},
{"【主动】龙战于野:唤醒真龙,攻击附带龙炎,攻击力越高,附带的龙炎造成的魔法伤害越高。","【限定技】亢龙有悔:以永远失去真龙为代价,复活一名目标","【被动】龙随:身后有真龙跟随,当真龙在身边时,初始攻击力增加。"},
{"【被动】赤兔:当吕布攻击时,赤兔马可以增加自身攻击速度。","【被动】方天画戟:当攻击目标未装备防具时,造成伤害翻倍。","【限定技】战神一击:携泰山压顶之势攻击多个目标,无视防具。"},
{"【限定技】剑来:从四面八方召唤神剑,造成两倍于攻击力的伤害。","【被动】御剑:剑在手中,攻击附带魔法伤害。"},
{"【限定技】开天眼:打开额头竖眼,召唤地狱之犬。","【被动】哮天出击:攻击附带额外魔法伤害。"}
};
printf("编号\t武将\t称号\t\t等级\t攻击力\t生命值\t法力值\n");
for(i=0;i<MAX;i++)
{
printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n",heros[i].id,heros[i].name,heros[i].name2,heros[i].level,heros[i].damage,heros[i].hp,heros[i].mp);
printf("技能:");
for(j=0;j<3;j++)
printf("\n%s",skills[i].skill[j]);
printf("\n");
}
return 0;
}
程序运行无错但有警告,因为为了容易看懂,初始化数组时可能出了些小问题,不够不影响代码实现