标题:萌新求教。。
只看楼主
q572259028
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-7-3
结帖率:0
 问题点数:0 回复次数:2 
萌新求教。。
很久很久以前,蜘蛛精和蝎子精俘虏了老爷爷和49名葫芦娃,蜘蛛精和蝎子精流着口水承诺不杀害任何葫芦娃,但是将他们关进一个有50间牢房的监狱里,每人一间牢房,牢房之间相互隔绝,无法输入或者输出任何信息。
监狱每天随机打开一间牢房的门,让老爷爷或者葫芦娃到院子里来放风。院子中间有一块一侧光滑一侧有花纹的圆形小石板,放风的人可以翻动石板,将石板的光滑面或者花纹面向上放置。除放风的人之外其他人都不会去碰石板。 除了石板以外,放风的人留下的任何其它痕迹都会在夜晚被清除干净(包括石板上作的任何记号)。牢房是完全封闭的,无法看到石板。
老爷爷为了能够获知蜘蛛精和蝎子精是否杀害了葫芦娃,和所有葫芦娃们商定了一个办法,这样老爷爷就能够知道所有被俘的葫芦娃是否还健在。请帮助设计老爷爷的方法,并编写程序计算老爷爷要知道所有人是否都健在可能需要多少天,请采样10次并给出平均值。
上面这个是问题
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main(){
    srand(time(NULL));
    int n,i,sum = 0;
    int a[50];
    for(i = 0;i < 50;i++){
        a[i] = 0;
    }
    int b = 1;      //石头的状态
    for(i=0;;i++){
        if(sum == 49)break;
        n = (int)(1 + rand() % 50);
        if(n == 1 && b == 1)    //假设爷爷在1号监狱
            b = 2;                 //轮到爷爷时如果石头在1面 则爷爷把石头翻到2面
         if(n != 1 && b == 2 && a[n] == 0){    //葫芦娃第一次看到石头被翻过后把石头翻回去
            b = 1;
            sum++;
            a[n] = 1;}}
            
     printf("%d",i);
    return 0;}

程序运行出来什么都没有 不知道哪里出问题了。。
搜索更多相关主题的帖子: 是否 include time int sum 
2018-10-11 16:19
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
惊呆了,好长的题目。。。而且是C语言

剑栈风樯各苦辛,别时冰雪到时春
2018-10-11 18:28
龙骑士伊志平
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-10-9
得分:0 
因为没有a【50】你那个n的范围是1~50  但是最多知道a【49】,a【0】一直没有机会出去放风被囚禁了好多天哈哈哈  所以sum最多知道48 循环一直没出去
2019-10-09 22:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490300-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.082360 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved