首页 > 解决方案 > “无效”问题:模拟病毒的程序

问题描述

我正在尝试为学校项目模拟病毒。基本上,在一个 50*50 的矩阵中,称为island 有随机的东西:可能有一个人(x),如果有,他可能被感染(p)或没有。然后,如果他们不使用保护措施,他们可能会被感染。当然,他们也可能通过治愈获得免疫力(i)。调用“感染”程序infecter();免疫者称为medic()

问题来了:我调用的最后一个程序(发生这种情况infecter(), medic())不会做我想做的一切。事实上,如果是最后一个medic(),我将无法判断我是否想在岛上找医生;如果最后一个是infecter(),它会感染,但我无法判断人们是否使用口罩,ecc。

//INFECTER
void infecter()
{ //prog to infect ppl: if there are 2 pos close to the person, 50%; if there arent, 20%;
    //
    [... full of surely bad indented and still working stuff...]
}

//MEDIC
void medic()
{ //program to save ppl==> 25% of possiblities to get no longer virus'd
   [full of badly indented but working stuff]

    printf("\n***************************************************\n");
    //

   

    infecter();
    medic();
    printf("\n");
    
    return 0;
}

PS:我是这样工作的,以创建voids:我在函数中编写代码main(),然后将其复制粘贴到void一个中,显然试图使其工作。感谢所有试图帮助我的人...

已编辑:当我看到评论告诉我这是太多代码时,我会以另一种方式表达。 infecter()并且medic()肯定会工作。他们在这个问题之前工作过,并且仍然在做他们的工作。问题是:为什么在main()函数结束时调用它们时它们不能完全工作?

编辑的第二部分:我很震惊,如果我只是medic()在前面放,一切正常infected()。但是那样medic()就没有意义了(医务人员会帮助并拯救很少的感染者,基本上......)所以我试着在之前和之后调用它,如下所示:

medic();
printf("\n");
infecter();
printf("\n");
fake();
printf("\n");
medic();

现在infecter()不能正常工作。

标签: cvoid

解决方案


推荐阅读