题目是有m个人玩游戏,n为不能说的数字,说到n的人退出游戏,下一个人从新报数,只要游戏剩下最后一个人为止时,游戏结束。
从要求从可以看出人数不确定,是一个变成数组。
定义变长数组,从键盘输入人数,并输入不能说的数,然后将人数和敏感数字传入函数。
先用for循环给每位玩家一个标志,表示玩家的参赛资格。
使用一个while循环,条件判断当只剩下最后一个人时,退出循环。最后使用一个for循环将还有参赛资格的玩家选出来,就是最后的赢家
代码演示:

游戏运行过程: 1 2 3 4 5,如 2 为不能说的数字,第一次报数为 1 2 1 2 1,则2 4退出游戏,第二次参加游戏的人为 1 3 5 ,根据上一次报数,这次报数是 2 1 2。最后剩下的人是三号
不熟练的小伙伴,可以不使用变长数组,和从键盘输入。可以直接定义
代码如下:
#include <stdio.h>
void good_luck(int arr[],int x,int len)
{
int k=0,count=0,i;
for(i=1;i<=len;i++)
{
arr[i]=1; //给每个玩家参赛资格
}
while(k!=len-1) //判断当玩家只剩下一个人时退出游戏
{
for(i=1;i<=len;i++)
{
if(arr[i] == 1) //判断玩家是否有参赛资格
{
count++; //报数
if(count%x == 0) //判断是否报到敏感数
{
arr[i]=2; //取消玩家资格
k++; //退出人数+1
count =0; //下一个人从新开始报数
}
}
}
}
for(i=1;i<=len;i++)
{
if(arr[i] == 1)
{
printf("游戏最后剩下的玩家是%d号",i);
}
}
}
int main()
{
int num,x,len;
printf("参与游戏的人数:");
scanf("%d",&num);
int arr[num];
printf("不能报的数:");
scanf("%d",&x);
len=sizeof(arr)/sizeof(int);
good_luck(arr,x,len);
}
验证码小程序,条件验证码无视大小写比较,并输入错三次退出输入。
第一步使用for循环生成一个六位数的验证码,第二步从键盘输入验证码,第三步进行比较
可以使用函数 strcasecmp ,不知道的小伙伴可以去百度查询一下使用方法。
代码演示如下:

代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <unistd.h>
char get_srand(char *ch);
char compare(char *ch,char *ch1);
char pass(char *ch1);
int main()
{
printf("请输入验证码进入系统\n");
char ch[7] = {0};
char ch1[7] = {0};
get_srand(ch); //生成验证码
compare(ch,ch1); //判断字符串是否相同
return 0;
}
char get_srand(char *ch) //获取随机数函数
{
int i,num;
srand((int)time(0));
for(i = 0; i < 6; i++)
{
num = rand()%3+1; //产生三种类型的字符
switch (num)
{
case 1:
*(ch+i)=48+rand()%9+1; //产生字符'0'到'9'
break;
case 2:
*(ch+i)=65+rand()%26; //产生字符'A'到'Z'
break;
case 3:
*(ch+i)=97+rand()%26; //产生字符'a'到'z'
break;
default:
break;
}
}
printf("验证码为:%s",ch);
}
char compare(char *ch,char *ch1) //字符串比较函数
{
int i = 3;
while(i>0)
{
pass(ch1);
if(strcasecmp(ch,ch1) == 0)
{
printf("-----验证码正确!-----\n");
sleep(1);
printf("---欢迎使进入系统---");
return 0;
}
if(i == 1)
{
printf("\n-----用户锁定!-----\n");
return 0;
}
printf("输入错误,验证码重新生成!\n");
get_srand(ch);
i--;
}
}
char pass(char *ch1) //输入验证码函数
{
printf("\n请输入验证码:");
scanf("%s",ch1);
printf("\n");
}
本文介绍如何使用C语言创建一个报数游戏,其中包含变长数组和敏感数字,直到只剩一人获胜。同时,还展示了实现验证码系统的简单步骤,验证码不区分大小写,连续错误三次则退出。

1万+

被折叠的 条评论
为什么被折叠?



