-
LS 的 ** 是错误的。
请参阅下面的**。
#include
#include
using namespace std;
void rand( int *array, int num);
功能:用数组生成 num 个随机数。
int main()
srand( time( 0 )
int a[10];
rand( a, 10 );
cout<< "---" cout<< a[i] return 0;
void rand( int *array, int num)
int i = 0;
array[i] = rand() 100;生产第一个。
i = 1;准备生产第二个。
for( ;i < num ;
array[i] = rand()%100;
for( int j=0;j 实现最后一个,并将其与前一个进行比较。
if( array[j] != array[i] )
if( j == (i-1) )
直到最后一个,下一个才准备好生产。
i++;break;
否则,如果有相同的,它立即退出循环并重新生成随机数,并且不添加 i。
break;
你上面写的程序很不灵活,如果你想生产5个,你的**是不是要改变很多? 让我们使用我为您编写的函数。
最后要强调的一点是:
void rand( int *array, int num);
将参数传递给 num 时,它不能大于 array[i] = rand()%100; 在100中
否则,这是一个无休止的循环,为什么? 你自己想想,不要我什么都说,不明白就不要给我发信息,我会告诉你的。 哈哈,测试一下自己的智力。
-
用一个数字组装一个随机数,一个数组表示已经记录的随机数;
例如,随机 0-8 生成一个随机的 8 位数组,数组中没有重复的项目;
例如 intarray[8];
intarrayindex[8]=;
intk=0;
srand(100);
while(k<8){
intq=rand()%8+1;
if(arrayindex[q-1]==1){continue;
array[k]=q;
arrayindex[q-1]=1;
k++;扩展材料c 语言随机输出 1 20 个不重复的随机数。
#include
#include
#include
voidmain()
inta[20];
inti,j;
srand((int)time(0));
a[0]=rand()%20+1;
for(i=1;i<20;i++)
a[i]=rand()%20+1;
for(j=0;jif(a[i]==a[j])i--;for(i=0;i<20;i++)printf("%3dn",a[i]);
这里使用了 rand() 函数和 srand() 函数,C C++ 中没有 random(int number) 函数。 >>>More