Aginoes 2020-09-01 14:56 采纳率: 0%
浏览 116
已采纳

为什么运行无法得到结果

为什么运行无法得到结果,检测也没有错误

利用结构化程序设计思想,完成一个解“100个囚犯和灯泡”问题的程序。问题描述如下,有 100 个囚犯分别关在 100 间牢房里。牢房外有一个空荡荡的房间,房间里有一个由开关控制的灯泡。初始时,灯是关着的(或者随机)。看守每天随便选择一名囚犯进入房间,但保证每个囚犯都会被选中无穷多次。如果在某一时刻,有囚犯成功断定出所有人都进过这个房间了,所有囚犯都能释放。游戏开始前,所有囚犯可以聚在一起商量对策,但在此之后它们唯一可用来交流的工具就只有那个灯泡。他们应该设计一个怎样的协议呢?请根据此协议设计实现一个程序,把解题过程详细输出并给出解题所需天数。
#include "stdio.h"
#include "stdlib.h"
#include "time.h"

typedef struct node
{
int b;
}NODE;

int main()
{
int s=0,h=0,c=1;
int p,t,m=1;//m天数,n囚犯编号[1,1],c计数,h灯泡状态1为开,s为计数人
srand((unsigned)time(NULL));
NODE n[100];
for (p=0;p=99;p++) n[p].b=0;
t=rand()%100;
s=t;
printf("天数=%d,次数=%d",m,c);
m=m+1;//初始状态未开灯,设置第一个进入囚犯为计数人,计数1;

while (c!=100)
{
    t=rand()%100;
    if (s==t) 
    {
        if (h==1)
        {
            c=c+1;
            h=0;
            printf("天数=%d,计数=%d\n",m,c);
        }
    }

         else if (s!=n[t].a)
         { 
             if (n[t].b==0&&h==0) 
               {
                   h=1;
                   m=m+1;//非计数人未开过灯进入并开灯。
               }
                  else m=m+1;
         }
}
printf("最终天数=%d\n",m);
return 0;

}

  • 写回答

1条回答 默认 最新

  • qq_29366533 2020-09-01 17:02
    关注

    1.for (p = 0; p = 99; p++)改为for (p = 0; p <= 99; p++)

    2.else if (s!=n[t].a)改为 else if (s!=n[t].b)

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

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建