小游戏:
1、字符串的比较
#include <string.h>
if(strcmp(char1,char2) == 0)//两个字符串相等
strcpy(char1,char2) ;//char2赋值给char1两字符串交换
2、二维数组的循环输出
#include <stdio.h>
int main()
{
int arr[5][2] = {{1,2},{3,4},{5,6},{7,8},{9,10}};
int i,j; //
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
printf("arr[%d][%d]:%d\n",i,j,arr[i][j]);
}
}
return 0;
}
3、二维数位的删除与增加
#include <stdio.h>
#include <stdlib.h>
#include <string.h>//支持字符串操作
#include <unistd.h>
#define MAX 6//系统要求的最大贵妃数
int main()
{
int ii;//终止while(1)
int i;//定义循环变量
int chose;
int temptree;
int tempDlete;
int day = 0;
int tempcount1 = 0;
int tempcount2 = 0;
int tempcount3 = 0;//判断好感度小于60的妃子数
int count = 5;//定义妃子的个数
int searchIndex = -1;//用来存放查找到元素的下表
//定义贵妃二维数组
char tempName[20];//用来存放临时字符串数组
char tempName1[20];//用来存放打入冷宫的娘娘名字
char tempName2[20];//小树林娘娘的姓名
char name[8];//存放用户输入的名字,一个汉子两个字符,最多四个汉子
char names[MAX][8] = {"西施","貂蝉","王昭君","杨玉环","赵飞燕"};
char levelNames[5][8] = {"素人","贵人","贵妃","皇贵妃","皇后"};
char emperorName[50];//皇帝的名号
int level[MAX] = {0,0,0,0,0,-1};//用来存放每个妃子的等级,-1表示未启用
int loves[MAX] = {100,100,100,100,100,-1};
//用来存放每个妃子的韩感度,-1表示未启用
printf("*******************************\n");
printf("*******************************\n");
printf("请输入当前等级的皇帝名号:\n");
scanf("%s",emperorName);// 录入字符串不需要&
printf("*******************************\n");
//打印面板
while(1)
{
day += 1;
printf("*******************************\n");
printf("*******************************\n");
printf("第%d天\n",day);
printf(" \n");
for(i = 0;i < count;i++)
{
if(loves[i] < 60)
{tempcount3++;}
}
if(tempcount3 >= 3)//三个妃子数好感度小于60就起义
{
printf("后宫失火,皇上你被罢免了!\n");
tempcount3 = 0;
break;
}
else
{
tempcount3 = 0;
printf("测试代码:查看当前嫔妃的状态\n");
printf("%-12s级别\t好感度\n","姓名");
for(i = 0;i < count;i++)
{
printf("%-12s%s\t%d\n",names[i], levelNames[level[i]] ,loves[i]);
}
// printf("第%d天\n",i + 1);
printf("*******************************\n");
printf("1、%s下令选妃!\t(增加)\n",emperorName);
printf("2、翻牌宠幸\t(修改状态)\n");
printf("3、打入冷宫\t(删除)\n");
printf("4、朕的爱妃呢\t(查找)\n");
// pritf("第%d天,皇上你选择哪一个:\n",i + 1);
// scanf("%d",&chose);
printf("*******************************\n");
printf("%s你选择哪一个:\n",emperorName);
scanf("%d",&chose);
printf("*******************************\n");
switch(chose)//一共有4种选择
{
case 1:
//选妃状态,name[][]增加一个字符串,类似于num[]插入一个元素
//增加数组前要判断有没有空间
//增加数组元素
{
if(count < MAX)
{
printf("%s皇上下旨选妃啦!\n",emperorName);
printf("%s,你选择的妃子是:\n",emperorName);
scanf("%s",names[count]);//录入字符串不需要&
//将第count元素的状态
level[count] = 0;//级别初始为0
loves[count] = 100;//好感度初始为100
count++;//添加完元素后计数器+1
}
else
{
printf("%s,后宫已经人满为患了!\n",emperorName);
}
break;
}
case 2://翻牌宠幸,修改状态//level[i]中i+1,其余的-1
{ //宠幸的妃子好感度+10,其余的好感度-10
printf("%s,您要宠幸哪位娘娘:\n",emperorName);
scanf("%s",tempName);
//字符串的查找strcmp,需要引入一个头文件<string.h>
//if(strcmp(tempName,"abc") == 0)表示两个相等
//+1前一个大于后一个 -1前一个小于后一个
for(i = 0;i < count;i++)
{
if(strcmp(tempName,names[i]) == 0)
tempcount1++;//如果所输入的值在名单目录之中tempcount1 > 0
}
if(tempcount1 > 0)//所输入的名字在后宫,然后进行后续操作
{
for(i = 0;i < count;i++)
{
if(strcmp(tempName,names[i]) == 0)
{
loves[i] += 10;//好感度+10
//级别不能超过5级(0-4之间)
//*********
level[i] = level[i] >= 4 ? 4 : level[i] + 1;
}
else
{
loves[i] -= 10;//其余妃子好感度-10
}
}
tempcount1 = 0;//标志是否存在的量清零
}
else// 所输入的名字不在后宫!
{
printf("所输入的名字不在后宫之中!\n");
}
break;
}
case 3://打入冷宫(删除)
//1、查找
//2、后面一个数给前面一个数
//3、总数--
{
printf("请输入要打入冷宫的娘娘:");
scanf("%s",tempName1);
//
for(i = 0;i < count;i++)
{
if(strcmp(tempName1,names[i]) == 0)
{
tempcount1++;//如果所输入的值在名单目录之中tempcount1 > 0
tempDlete = i;//储存要删除的娘娘下标值
}
}
if(tempcount1 > 0)
{
tempcount1 = 0;
//开始删除元素
for(i = tempDlete;i < count - 1;i++)
{
// names[i] = names[i + 1];//C语言中不支持字符转数组的直接赋值
//需要使用strcpy函数实现数组的赋值
strcpy(names[i],names[i + 1]);
loves[i] = loves[i +1];
loves[i] -= 10;//其余娘娘姐妹情深,想皇上求情,好感度-10
level[i] = level[i + 1];
}
count--;//妃子数-1
}
else
{
printf("该娘娘已经被打入冷宫了\n");
}
break;
}
case 4://朕的爱妃呢(查找)
//1、查找
//2、增加好感度
//3、可以使用数组设计诗歌,使用随机数的方式表现皇帝的文采
{
printf("%s,您想和哪位娘娘进小树林啊:\n",emperorName);
scanf("%s",tempName2);
for(i = 0;i < count;i++)
{
if(strcmp(tempName2,names[i]) == 0)
{
tempcount2++;
temptree = i;//小树林序号
}
}
if(tempcount2 > 0)
{
loves[temptree] += 10;
tempcount2 = 0;
}
else
{
printf("查无此人!\n");
}
}
default:
{
break;
}
}
}
printf(" \n");
sleep(1);
printf(" \n");
sleep(1);
}
return 0;
}