69,373
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define N 1000
#define M 10
int main()
{
srand(time(NULL));
int m = M;
for (int i = 0; i < N; i++)
{
if ((rand()%(N - i)) < m) //此处rand()%(N - 1)出现每一个小于(N - i)的数的概率是一样的
{ //被取到,m值减 1 ,输出结果 i
m--;
printf("%d\n", i);
}
}
return 0;
}
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define N 1000
#define M 10
int main()
{
srand(time(NULL));
int m = M;
for (int i = 0; i < N; i++)
{
if ((rand()%(N - i)) < m) //此处rand()%(N - 1)出现每一个小于(N - i)的数的概率是一样的
{ //被取到,m值减 1 ,输出结果 i
m--;
printf("%d\n", i);
}
}
return 0;
}
root@~ #cat randarray.c
#include <stdio.h>
#include <time.h>
int main (void) {
srand((unsigned)time(NULL));
int a[10];
int i,j,k,len=10,random,count=0;
//Creat Random numbers between 1 to 20 in array.
for(i=0;i<len;i++) {
a[i]=rand()%10+1;
}
//Ascending sort array.
for(i=0;i<len-1;i++) {
for(j=i+1;j<len;j++) {
if(a[i]>a[j]) {
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}
//Delete duplicate elements in array.
i=0,j=0,k=0;
while(i<len) {
if(a[i]==a[i+1]) {
i++;
k++;
continue;
}
a[j]=a[i];
j++;
i++;
}
//Add don't repeat elements in array.
len-=k;
do {
random=rand()%10+1;
for(i=0;i<len;i++) {
if(a[i]!=random) {
j++;
}
}
if(j==len) {
a[len]=random;
len++;
j=0;
count++;
}else{
j=0;
continue;
}
}while(count!=k);
//display
for(i=0;i<len;i++) { printf ("%i ",a[i]); };printf ("\n");
return 0;
}
root@~ #