使用rand();函数需调用stdlib.h函数库。
rand():函数小程序:输入n,输出n个随机整数。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
printf("%d ",rand());
printf("\n");
return 0;
}
多次运行,发现n相同时,输出的数也相同。
如何解决这个问题呢?
答案是使用srand(int);函数来设定种子。
更正后的代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int n;
scanf("%d",&n);
srand(clock());
for(int i=0;i<n;i++)
printf("%d ",rand());
printf("\n");
return 0;
}
利用计时函数为rand();设定种子。
利用srand():,可以编出一些测试算法的代码。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int n,t;
scanf("%d",&n);
srand(clock());
int a[n];
for(int i=0;i<n;i++)
a[i]=rand();
for(int i=0;i<n;i++)
for(int j=0;j<=i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(int i=0;i<n-1;i++)
if(a[i]<a[i+1]) printf("\a");
return 0;
}