C语言:有五个小朋友围成一圈,编号为1到5,每人手里拿着一个数字,数字大于零。他们的游戏规则是这样的

C语言:有五个小朋友围成一圈,编号为1到5,每人手里拿着一个数字,数字大于零。他们的游戏规则是这样的,第1张

//说明:我的编译成功的,并自己用数据模拟验证过答案,且代码有详细的注释

#include <stdio.h>

void main()

{

int a[100][5]

int i,j,n//n表示枣改案例个数

int sum=0//统计出局闹野人数

int t=0//计数器

int k//数到k后出局

scanf("%d",&n)

for (i=0i<ni++)

for (j=0j<5j++)

scanf("%d",&a[i][j])//输入数据

//下面模拟该过程

for (i=0i<ni++){

k=a[i][0]//取第一个人手中的数

sum=0

t=0

for (j=1sum<凳弯判4j++){

if (j%5==0) j=0//控制循环

if (a[i][j]!=0) t=t+1//计数

if ((t%k==0)&&(t!=0)) {

k=a[i][j]//取出局人的数

a[i][j]=0//出局标记

sum=sum+1//计数出局人数

t=0//计数清零

}

}

}

//输出结果

for (i=0i<ni++)

for (j=0j<5j++)

if (a[i][j]!=0) printf("%d\n",j+1)//输出胜利者是第几号

}

此题显然有误——

当n取1或2时能找到比1、2小的素数m吗?

当n取3时,比3小的素数只有2一个,喝3杯后肯定没有人喝到5杯,出不了结果,还要继续喝下去,但得换一个“以前没有用过的素数m”,只有一个2,再换换谁呢?

当n取5时,提问者桐纳可以自行演绎一局戚没下,同样存在2所指出的问题仔森。

这题也很毛糙,如“将第一个喝到5杯酒的人指出来”——假设没有上述错误,按照题设规则,难道还会有第二个、第三个……喝到5杯的人吗?不可能啊,只要有人喝到5杯了游戏立马就结束了!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12302946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存