我很努力地挣扎这么久,我可以用随机数填充我的数组 但它们并不是唯一的。我无法在我的代码中发现问题:(你能帮助我吗?谢谢
int getUniqueNumber(int *p, int i)
{
int x,j,found;
do
{
x=rand()%100000 + 1;
found=0;
j=0;
while(j<=i && found==0)
{
if(p[i]==x)
found=1;
else
j++;
}
} while(found==1);
return x;
}
答案 0 :(得分:4)
p[i] == x
应为p[j] == x
。
答案 1 :(得分:0)
该功能可以通过以下方式定义
int getUniqueNumber( const int *p, int i )
{
int x, j;
do
{
x = rand() % 100000 + 1;
j = 0;
while ( j < i && p[j] != x ) ++j;
} while( j != i );
return x;
}
至于你的函数实现,那么循环中有一个错误的条件(j&lt; = i)
while(j<=i && found==0)
并且使用索引i而不是索引j
if(p[i]==x)