看代码:
#include<stdio.h>#include<stdlib.h>
#include<time.h>
#define N 9
void main()
{
int i
int a[N]
srand(time(0))//以时间为种子,每次生成不同的数
for(i=0i<Ni++)
{
//生成[5,10]之间的整数
a[i]=rand()%6+5//rand()生成数的范围在[a,b)写成:a[i]=a+rand()%(b-a)
}
for(i=0i<Ni++)
printf("%d ",a[i])
puts("")
}
这里注意一下rand()需要生成数据的范围公式,即:
范围在[a,b)写成:a[i]=a+rand()%(b-a)
#include<stdio.h>#include<stdlib.h>//准备使用随机生成函数#include<time.h>//为了给随机函数指定每次不同的种子值,准备使用时间函数#define N 100void main() { int a[N],isrand((unsigned int)time(NULL))//取当前时间当随机数种子for ( i=0i<Ni++ ) a[i]=rand()%100+1//生成随机数范围在[1,100]区间for ( i=0i<Ni++ ) printf("%d ",a[i])printf("\n")}rand()函数生成随机数区间为[0,65535]如果要生成[a,b]之间的随机数:rand()%(b-a+1)+arand()%100生成随机数范围[0,99]rand()%100+1生成[1,100]#include<stdio.h>#include<time.h>
#define M 5
#define N 5
void main()
{ int a[M][N],*p,r,i,j,n
srand((unsigned int)time(NULL))
p=afor ( i=0i<M*Ni++,p++ ) (*p)=0
n=rand()%4+4//决定生成几个-1,取值4~7
for ( i=0,p=ai<ni++ )
{ while ( 1 )
{ r=rand()%(M*N)//随机生成数组下标,取值0~M*N-1
if ( p[r]==0 ) break//如这个下标已经被赋值过则重新选下标,否则退出循环
}
p[r]=(-1)
}
for ( i=0i<Mi++,printf("\n") ) for ( j=0j<Nj++ ) printf("%d ",a[i][j])
}