这是我的第一篇文章,所以如果我碰巧跳过了我应该提到的内容,请不要粗暴对我说。
我正在制作一个模拟网球锦标赛的计划,以及通过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
}
如果需要,我会提供完整的程序,只是认为发布整个内容会非常笨重。