因为rand()产生的伪随机数 在b=rand()%100;前加一句srand(time(0)); 就好了
include <math.h> include main(){ int i;srand((unsigned int)time(NULL));i = ( rand() % 100);fprintf(stderr,"i=%d",i);exit(0);} /* --- 说明:产生0到N随机数的方法是 ( rand() % N);srand涵数提供伪随机数涵数的种子 ---*/ ...
int compare(const void* l, const void* r); //以50为基数进行快速排序 int main(int argc, char *argv[]){ int a[ARRY_SIZE];int i;for (i=0; i<ARRY_SIZE; i++){ a[i] = rand()%100; //产生ARRY_SIZE个 0-100 的随机数 } qsort(a, ARRY_SIZE, sizeof(int), c...
int main(void){ int nDec[100],i,j,k;srand((unsigned)time(NULL));for(i=0;i<100;nDec[i++]=rand());for(i=0;i<100;i++){ for(k=i,j=k+1;j<100;j++)if(nDec[k]>nDec[j]) k=j;if(i!=k){ j=nDec[i];nDec[i]=nDec[k];nDec[k]=j;} printf("%d ",nDec[...
include<stdio.h>#include<stdlib.h>#includeint main(){int i,j=0,n,a[100],b[100];srand((unsigned)time(NULL));scanf("%d",&n);for(i=0;i<n;i++)a[i]=rand()%101;for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");for(i=0;i<n;i++)if(a[i]%2==0){...
include "stdio.h"#include "stdlib.h"#include "time.h"#define N 20int main(void){ int i,j,a[N]; srand((unsigned)time(NULL)); printf("Delete the previous:\n"); for(i=0;i<N;i++) printf("%4d",a[i]=rand()%91+10); printf("\nAfter deleting:...
include<stdio.h>#include<stdlib.h>#include#define N 20void main() { int a[N],i,x,b; srand((unsigned int)time(NULL)); for ( i=0;i<N;i++ ) { a[i]=rand()%101; printf("%d ",a[i]); } printf("\n"); scanf("%d",&x); for ( i=b=0;i<N;i++ )...
k = 1; //按键标志置1,主函数执行取随机数 } void time0() interrupt 1 //定时器0中断...
以前想过这个问题,用定时器计时100,让定时器一直跑,等用随机数的时候,读出计数器的值,并用总数减去。但是我没试过,不知道行不行。你觉得可以就试试,我也想知道答案。
既然产生的不是伪随机数,那么随机源就是问题的关键。随机源可以通过侦听和统计系统中的各种事件来模拟实现;这是一个很难的问题。通过C调用Matlab的功能就简单多了。