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;
}

程序运行无错但有警告,因为为了容易看懂,初始化数组时可能出了些小问题,不够不影响代码实现
在这里插入图片描述

posted @ 2019-05-05 22:50  h云淡风轻  阅读(6)  评论(0编辑  收藏  举报  来源