为什么int上的返回值相同
Why is the return value on int is the same over?
s,我正在根据随机值创建一些游戏。该游戏应该通过插入一个团队组合的球员统计数据,另一支球员组合等等,可以预测足球比赛的结果。投入游戏统计数据的团队将增加竞争对手的统计数据。如果值的值触及了团队的统计数据,则将播放器的原始数据除以两个,并将其视为将考虑得分的情况。
这是代码
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
int score_prob(int x,int hh, int aw);
int main()
{
int i,j,k,a,b,c,n,sc,shome=0,saway=0;
int p[64][64],x,y,z,ho,aw;
int t[64],h,w,sem,tand;
printf("Number Of Team : ");scanf("%d",&x);
printf("Number Of Player: ");scanf("%d",&y);
for(i=0;i<x;i++)
{
z = 0;
printf("nn");
printf("Teamm %d n",i+1);
for(j=0;j<y;j++)
{
printf(". PLayer %d : " ,(j+1));scanf("%d",&p[i][j]);
z += p[i][j];
}
printf("Stat of team %d = %d",i+1,z);
t[i] = z;
}
srand(time(NULL));
do
{
k = 0;
printf("nn");
printf("Home Team Number: ");scanf("%d",&a);a = a - 1;
printf("Away Team Number: ");scanf("%d",&b);b = b - 1;
for(i=0;i<90;i++)
{
i += 4;
printf("nMinute %d: ",i+1);
{
sem = t[a] + t[b];
ho=t[a];aw=t[b];
sc = score_prob(sem,ho,aw);
printf("n %dn",score_prob(sem,t[a],t[b]));
if(sc == 0)
{
shome += 1;
printf("Home Scoren");printf(" %d VS %d ",shome,saway);
}else if(sc == 2)
{
printf(" %d VS %d ",shome,saway);
}
else{
saway += 1;
printf("Away Scoren");printf(" %d VS %d ",shome,saway);
}
}
}
}while(k == 0);
return 0;
}
int score_prob(int x,int hh, int aw)
{
int st,aa,nn,sr=0,sh=0,sa=0,home,away;
time_t t;
sh=0;sa=0;
aw = aw / 2; hh = hh / 2;
srand((unsigned) time(&t));
for(nn=0;nn<x;nn++)
{
aa = rand() % x;
if(aa<hh)
{
sh += 1;
}
if(aa>(aa - aw))
{
sa += 1;
}
if(aa!=(aa<hh) && aa != (aa<(aa-aw)))
{
sr +=1;
}
}
if(sr != 0)
{
if(sh<sa)
{
st = 1;
}
else
{
st = 0;
}
}
else
{
st = 2;
}
return st;
}
随机数不是完全随机=(有一些具有伪随机号码的表,当您调用srand()
时,您只需选择其中一个表即可。之后,rand()
的每个电话都会从所选表中获取一些数字。因此,如果您用相同种子几次致电srand()
,您将一遍又一遍地获得同一张桌子。
rand
是'秘密'递归函数(线性一致生成器类型(。这意味着上一个呼叫的结果用作下一个呼叫的输入。由于它将以前的值存储在静态变量中,因此您需要自己设置它,然后再首次致电rand
。
您可以在运行时多次重置它,但是,由于您可能在同一第二秒内多次调用srand((unsigned) time(&t));
,因此此值似乎是恒定的。
相关文章:
- 如何使用 uint64_t 键类型从 std::map<int, std::string> 返回值?
- 从类型bankAccount的返回值到函数返回类型int没有可行的转换
- 如何使用 SWIG 将 C++ int** 返回值给 Python
- 返回类型为 int 的函数中的默认返回值 1?
- 为什么int上的返回值相同
- 绑定的返回值不是int
- int main() 的返回值是什么意思,如何显示它?
- C++int函数.当零是有效的返回值时,我如何检测false
- 警告:忽略"int scanf(const char*, ...)"的返回值,使用属性 warn_unused_result [-Wunused-result] 声明
- 在 C++ 中传递 int 变量 - 错误检查不返回值
- 为什么这个返回值?C++int/char混淆
- <int>在C++中引用 stack.top() 的返回值的正确行为是什么
- 我可以从引用传递的参数返回值中声明const int吗
- 如果一个指定返回类型为int的函数没有任何返回语句,即不返回值,它会返回垃圾值吗
- 从Find Max方法返回一个int值并将其打印在测试文件中
- Find()返回unsigned int的最大值
- 返回 int 但不显式返回任何内容的函数的返回值是什么。例如输出
- 返回值 int& 和 const int& 之间的区别
- 返回值 int&
- 其中是存储的int main()的返回值