-
当标志为 false 时,您的程序将无法继续获得正确的结果,因为 temp 是随机生成的,因此在某些情况下,mins[i]==temp 可能为 true。 我修改了两个地方,步骤如下:
void main();
int temp=0;
int i,a=0;
srand((unsigned)time(null));*播种*
while(a<=9)
bool flag=true;这里的标志从全局变量改为局部变量,每次循环,设置一次。
temp=rand() 99;
for(i=0;i<10;i++)
if(mins[i]==temp)
if(flag)
mins[a]=temp;
cout
-
gettickcount();
函数的原型是 dword gettickcount(void),返回值以 32 位双字类型 dword 存储,所以可以存储的最大值在 2-1 ms 左右,所以如果系统运行超过一天,这个数字会减少到 0
所以这个随机时间需要限制,否则可以运行几天。
-
问题是你没有清除每个循环中的标志
因此,如果存在重复的 temp,则标志将始终为 false,并且永远不会执行 a++ 语句。
-
if(mins[i]==temp) 和 mins[a]=temp; 这个冲突,你for(int i=0; i<10;i++)
if(mins[i]==temp)
已更改为。 for(int i=a;i<10;i++)if(mins[a]==temp)
没关系。
-
将 flag=true 添加到末尾的 while 循环中; 就是这样。
-
你的程序的长度与你的标志有关,一旦你的标志设置为 false,我不知道是否有任何方法可以增加你的 A。
-
系统提供了一个生成随机数的函数,即 rand() 函数。
它根据系统内的随机种子生成随机数。
直接调用 rand 函数将返回一个需要包含头文件的随机数。
-
rand() 以 include 为标准库的随机函数!
方法一:使用srand函数; srand 函数可以以两种不同的方式使用:直接输入随机数种子并使用系统时间初始化随机数种子; >>>More
这里使用了 rand() 函数和 srand() 函数,C C++ 中没有 random(int number) 函数。 >>>More