返回给出错误返回值的结构的函数

时间:2018-01-06 19:38:15

标签: c function

这是我的第一篇文章,所以如果我碰巧跳过了我应该提到的内容,请不要粗暴对我说。

我正在制作一个模拟网球锦标赛的计划,以及通过rand()功能进行个人比赛的结果,以便在当前参加比赛的2名球员之间分配积分。

我已经扫描了程序并尽力解决问题,但仍有一个问题我无法修复,这是确定匹配结果的功能。问题是该函数返回奇怪的值,它们应该看起来像什么。

我首先想到变量的声明和我对它们进行操作的方式存在问题,但事实并非如此,所以我没有想法就来找你。

以下是代码:

jucatori meci(jucatori jucator1,jucatori jucator2 )
{
   int u =0;   //scor jucator 1
   int o=0;    //scor jucator 2

   int p;     //aux j1 
   int l;     //aux j2
   int i;

   do
   {
     //first loop, where player 1 serves
     p= rand() % jucator1.sansaServire;  //generate a number for player1
     l= rand() % jucator2.sansaPrimire;  //generate a number for player2

     if(l>p)
     {
        o=o+1;

        do
        {
           //going into the second loop, in this loop, here, player 2 serves
           p = rand() % jucator1.sansaPrimire;
           l = rand() % jucator2.sansaServire;
           if(p>l) u = u+1;
           if(l>p) o = o+1;
           else break; //iese din bucla 2, juc1 va servi iarasi
        }while(l>p);
    }
    else if(p>l) u = u+1;
  }while(u + o < 51);   //inchidem prima bucla

  if(u > o && u - o > 10)
  {
      jucator1.meciurijucate++;
      jucator2.descalificat = 1;
      jucator1.scor1 = u;
      jucator1.scor2 = o;
      return jucator1;
  } //return player 2, add 1 to the number of matches played and mark player 1 as out of the game
  else if(o > u && o - u > 10)
  {
      jucator2.meciurijucate++;
      jucator1.descalificat = 1;
      jucator2.scor1 = o;
      jucator2.scor1 = u;
      return jucator2;
  }//return player 1, add 1 to the number of matches played and mark player 2 as out of the game
  else return meci(jucator1,jucator2); //call function again if the match is a draw
}

如果需要,我会提供完整的程序,只是认为发布整个内容会非常笨重。

0 个答案:

没有答案