❶ 数据结构c语言编程杀人游戏
编写程序,模拟约瑟夫环(Josephus)问题: n个人(编号为1,2,3,……,n ,n>0 )按顺时针方向围坐一圈,每人持有一个正整数密码。开始时任意给出两个值:一个为首先报数的人的编号i (1≤i≤n),另一个为起始报数上限值m。接着从编号为i的人开始按顺时针方向自1起顺序报数,报到m时停止报数,且报到m的人出列,并将他的密码作为新的m值,从他在顺时针方向上的下一个人起重新自1报数,……,如此下去,直到所有人全部出列为止。
我的作业。你自己改改吧。
如果满意,就采纳了吧。
❷ c语言杀人游戏
有一道很有意思的题目,问题是这样的
、日本某地发生了一件谋杀案,警察通过排查确定杀人兇手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是兇手。
刚看到这道题我的内心是崩溃的,根本看不懂 要怎么来写呢 !
但是当有一定的理解之后 ,就会发现这题是非常简单的,同时也是非常有意思的;
刚开始我写出的代码是这样的;
[html] view plain
#define _CRT_SECURE_NO_WARNINGS1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;//0 表示是兇手
int b = 0;
int c = 0;
int d = 0;
int flag = 0;
for(a = 0;a <= 1;a ++)
{
for(b = 0;b <= 1;b ++)
{
for(c = 0;c <= 1;c ++)
{
for(d = 0;d <= 1;d ++)
{
int sum = (a ==1 ) +(c == 0)+ (d == 0)+(d == 1);
int temp =(a == 1)+(b == 1)+(c == 1)+(d == 1);
if(sum == 3 &&temp ==3)
{
printf("a =%d\nb =%d\nc =%d\nd =%d\n",a,b,c,d);
flag = 1;
break;
}
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
{
if(0 ==a)
printf("兇手是 A\n");
else if(0 ==b)
printf("兇手是 B\n");
else if(0 ==c)
printf("兇手是 C\n");
else
printf("兇手是 D\n");
}
else
printf("没找到\n");
system("pause");
return 0;
}
这代码写的可能有点的繁琐 ;可能看不懂;
其实只要弄懂一点就很容易做对 。
那就是 四个人中三个人说的是正确的, 一个是错的
所以可以写成这样 ,四个人说的加起来要等于三
当然之后老师又给我们交了新的方法;
代码 是这样的
[html] view plain
#define _CRT_SECURE_NO_WARNINGS1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int killer = 'A';
for(killer = 'A';killer <= 'D'; killer ++ )
{
int num = 0;
num = (killer != 'A')+(killer == 'C' )+(killer == 'D')+(killer != 'D');
if(num ==3)
{
printf("killer = %c\n",killer);break;
}
}
if(killer > 'D')
printf("没找到兇手 \n");
system("pause");
return 0;
}
这代码看上去就十分的简单 ,每个人的写法都会不一样的 ,但原理是一样的。
因此 ,只要明白一个程序的 原理写出来是肯定 ,但是看得就是谁写的更简单的;
所以应该这样好好思考 。
❸ c语言杀人游戏,m个人组成一围,取n,然后把第n个去掉,最后剩下一个
你是不是吃饱了没事情干
❹ 用C语言实现杀人游戏
1.将所参与的人按序号从1开始排序 2.每个人从1开始报数,报到死亡编号的人就被杀死 3.死后退出,其他人继续从1开始报数,直到只剩1个人就结束游戏,记录出局者编号。
对参与者编号并用数组存起来------>依次报数并将死亡者的编号赋值为-1------>记录死亡者编号------>直到剩余1人游戏结束。
利用好for循环123123...进行报数;将出局者编号赋值,利用这个值使其出局。
❺ DAY5C语言知识整理4(数组排序)+杀人游戏(约瑟夫环)+猜数字(4位数)
比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。
依次选出数组最小的数放到数组的前面。
当前面的元素比后面大时,先把后面的元素存入临时变量,前面元素的值放到后面元素位置,再到最后把其值插入到合适的数组位置。
又是烧(tuo)脑(fa)的一天,昨天制作了杀人游戏当时在数组怎么连成环的地方想了很久,没想到还能这么简单。对于边产生随机数边排序的做法还是有点绕(=,=)可能本辣鸡只适合分开做,,开始补脑的第二天。在此郑重批评6711,在我写这篇文章的时候她成功关了三次我的网页,未遂n次n趋于正无穷。