萌新求教。。
很久很久以前,蜘蛛精和蝎子精俘虏了老爷爷和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;}
程序运行出来什么都没有 不知道哪里出问题了。。