哥因你不帅 2020-07-19 19:52 采纳率: 33.3%
浏览 92
已采纳

vs2019C语言-皇帝游戏的问题

#include<stdio.h>
#include<stdlib.h>
#include<string.h>


#define Name 30;
#define NamesMax 30

int main()
{
    int i;
    char EmperorName[10];
    int choice;     //皇帝的选择数量
    int count = 5;  //当前未打入冷宫的妃子的个数(存在妃子个数)
    char Names[NamesMax][10] = { "貂蝉","杨玉环","Giao","西施","郭德纲" };
    //妃子的等级名称数组           第0个 第1个 第2个 第3个 第4个
    char LevelNames[NamesMax][10] = { "贵人","嫔妃","贵妃","皇贵妃","皇后" };
    //妃子的等级数组,对应每个妃子的当前等级
    int Levels[NamesMax] = { 1,2,0,0,0 ,0};
    //妃子的好感度,对应每位妃子,初始值情况,每个人的好感度为100
    int Loves[NamesMax] = {100,100,100,100,100,0};

    printf("****************************************************\n");
    for (i = 0; i < count; i++)
    {
        printf("%s\t%s\t%d\n", Names[i],LevelNames[Levels[i]],Loves[i]);
    }
    printf("****************************************************\n");

    printf("请输入当朝皇帝的名号:");    
    scanf_s("%s", EmperorName, 10);         //玩家取名
    printf("当朝皇帝是:%s!吾皇万岁!万万岁!!!\n",EmperorName);
    printf("1、皇帝下旨选妃:\t\t(添加功能)\n");    //选项
    printf("2、翻盘宠幸:\t\t(修改功能)\n");
    printf("3、打入冷宫!\t\t(删除功能)\n");
    printf("4、单独召见爱妃。\n");
    printf("陛下请选择:");
    scanf_s("%d", &choice);
    switch (choice)
    {
    case 1://1、皇帝下旨选妃:(添加功能)
        //增加数组(妃子Names、等级Levels、好感度Loves)
        //确认能否添加,数组位数是否已满
        if (count < NamesMax)
        {
            //可执行添加
            printf("请输入娘娘的名讳:");
            scanf_s("%s", Names[count], 10);
            Levels[count] = 0;      //妃子初始等级为0
            Loves[count] = 100;     //妃子初始好感度为100
            count++;                //添加完NPC后记得添加存在妃子数组位数

            printf("%s\t%s\t%d\n", Names[count], LevelNames[Levels[count]], Loves[count]);

        }
        else
        {
            //不可执行添加
            printf("陛下!注意保护龙体啊!后宫已人满为患了!\n添加失败!\n");
        }
        break; 
    case 2:
        printf("2、翻牌宠幸:\t\t(修改功能)");
            break; 
    case 3:
        printf("3、打入冷宫!\t\t(删除功能)");
                break;
    case 4:
        printf("4、单独召见爱妃。");
        break;
    default:
        printf("君无戏言!请陛下再次选择:");
        break;
    }

    printf("****************************************************\n");

图片说明

无法实现添加功能,请问这是我写的不对吗?
小白求指点!

  • 写回答

1条回答 默认 最新

  • weixin_43753002 2020-07-20 09:43
    关注
            count++;                //添加完NPC后记得添加存在妃子数组位数
    
            printf("%s\t%s\t%d\n", Names[count], LevelNames[Levels[count]], Loves[count]);
    

    这块count++以后,打印时数组访问没有赋值的地址了,不是你刚刚添加数据的地址

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗