69,371
社区成员
发帖
与我相关
我的任务
分享
srand((unsigned int)time(NULL));
int a[5]={3,67,9,2,5};
int i=0,j=0,k=0;
while(i==k||i==j||j==k)
{
i=rand()%5;
j=rand()%5;
k=rand()%5;
}
cout<<a[i]<<" "<<a[j]<<" "<<a[k];
[/quote]
可是我现在不会用RAND()啊,这个是不是产生一个随机的数
还有time(null)是怎么回事啊?[/quote]
time的定义:
time_t time( time_t *timer );
用法是你先自己定义一个time_t变量,让后把变量的地址传给它。函数会返回自1970年1月1日0点走过的秒数,同时把这个返回值保存在你传进来的那个time_t*指向的变量里面。如果你传进来NULL的话,就不保存。
srand()函数是用来重置随机数的种子。参数为一个unsigned int
time()取当前时间。
整个语句就是将随机数的种子设为当前时间。经常会在随机数使用前用到,可以保证每次生成的随机数不一样。
srand((unsigned int)time(NULL));
int a[5]={3,67,9,2,5};
int i=0,j=0,k=0;
while(i==k||i==j||j==k)
{
i=rand()%5;
j=rand()%5;
k=rand()%5;
}
cout<<a[i]<<" "<<a[j]<<" "<<a[k];
srand((unsigned int)time(NULL));
int a[5]={3,67,9,2,5};
int i=0,j=0,k=0;
while(i==k||i==j||j==k)
{
i=rand()%5;
j=rand()%5;
k=rand()%5;
}
cout<<a[i]<<" "<<a[j]<<" "<<a[k];
[/quote]
可是我现在不会用RAND()啊,这个是不是产生一个随机的数
还有time(null)是怎么回事啊?
srand((unsigned int)time(NULL));
int a[5]={3,67,9,2,5};
int i=0,j=0,k=0;
i=rand()%5;
j=rand()%5;
k=rand()%5;
if(i==j)
{
i=abs(i-rand()%5);
}
if(j==k)
{
k=abs(k-rand()%5);
}
if(i==k)
{
while(j==i||k==i)
i=rand()%5;
}
cout<<a[i]<<" "<<a[j]<<" "<<a[k];
i = 3, j = 2, k = 1
i = 4, j = 2, k = 1
i = 4, j = 3, k = 1
i = 4, j = 3, k = 2
i = 5, j = 2, k = 1
i = 5, j = 3, k = 1
i = 5, j = 3, k = 2
i = 5, j = 4, k = 1
i = 5, j = 4, k = 2
i = 5, j = 4, k = 3
少了哪一个了吗?
#include <stdio.h>
int main()
{
int i, j, k;
int num = 0;//排列的种数
char people[] = { 'a','b','c','d','e'};
for (i = 0; i < 3; i++)
{
for (j = i+1; j < 4; j++)
{
for (k = j+1; k < 5; k++)
{
printf("%c\t%c\t%c\n",people[i],people[j],people[k]);//输出排列
num += 1;
}
}
}
printf("%d\n",num);
return 0;
}