189 8069 5689

c语言中的随机函数例题 c语言中的随机函数例题解析

C语言的题,求助:利用随机函数rand()计算圆周率近似值。

(1)设定要求运算的次数N

成都创新互联公司是一家专注于成都做网站、成都网站制作、成都外贸网站建设与策划设计,宝应网站建设哪家好?成都创新互联公司做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:宝应等地区。宝应做网站价格咨询:18980820575

(2)用随机函数得到在区间[-1,1]内的随机数,分别赋值给X,Y,计录满足X*X+Y*Y=1点的个数K,4K/N即为所求的派。

#includestdio.h

#includewindows.h

#include"time.h"

double AverageRandom(double min,double max)

{

int minInteger = (int)(min*10000);

int maxInteger = (int)(max*10000);

int randInteger = rand()*rand();

int diffInteger = maxInteger - minInteger;

int resultInteger = randInteger % diffInteger + minInteger;

return resultInteger/10000.0;

}

void main( )

{

int i, n,k=0;

double x,y,z;

srand((unsigned)time( NULL ));

printf("请输入运算的次数:\n");

scanf("%d",n);

for( i= 1;i =n; i++)

{

x= AverageRandom(-1,1);

y=AverageRandom(-1,1);

if( x*x+y*y=1) k++;

}

z=4*(double)k/(double)n;

printf("%f",z);

}

参考答案:

c语言随机生成10到加减法题 用rand函数?

先用srand函数设置随机数种子,再用rand函数取两个随机数作为运算数字,而运算符只有+和-,那么用rand()%2来得到0~1的随机数来决定运算符号。

下面演示代码,随机生成10道加减题,输入回答,判断正确性。

#includestdio.h

#includestdlib.h

#includetime.h

#define M 10//题目数量

int main(void)

{

int n=M,num1,num2,s,y,a;

srand(time(NULL));

while(n--)

{

  y=rand()%2;

  num1=rand();

  num2=rand();

  if(y)

      printf("问题%d:%d+%d=",M-n,num1,num2),s=num1+num2;

  else

      printf("问题%d:%d-%d=",M-n,num1,num2),s=num1-num2;

  scanf("%d",a);

  if(a==s)printf("回答正确!\n\n");

  else printf("回答错误!正确答案:%d\n\n",s);

}

return 0;

}

C语言编程考试题 用随机函数产生并输出20个[10,99]的随机整数,输出其中大于这20个数的平均值的数。

#includestdio.h

#includestdlib.h

#includetime.h

int main(void)

{

srand(time(0));

int i=0; //用于下面的循环

int a[20]={0}; //用于存储产生的20个随机数。

double ave=0; //用于求20个随机数的和,为了求他们的平均数。

for(i =0;i=19;i++)

{

a[i]=rand()%90+10; //rand()%90产生0-89的随机数,加上10后就是10-99的随机数。

ave=ave+a[i];

printf("第%d个随机数是:\n",i+1,a[i]);

}

ave=ave/20;

for(i =0;i=19;i++) //打印大于平均数值的随机数;

{

if(a[i]ave)

{

printf("第%d个随机数等于%lf大于平均数%lf\n",i+1,a[i],ave)

}

}

return 0;

}

结果:

第1个随机数是:34

第2个随机数是:32

第3个随机数是:86

第4个随机数是:20

第5个随机数是:86

第6个随机数是:43

第7个随机数是:26

第8个随机数是:65

第9个随机数是:98

第10个随机数是:57

第11个随机数是:98

第12个随机数是:59

第13个随机数是:72

第14个随机数是:27

第15个随机数是:25

第16个随机数是:55

第17个随机数是:53

第18个随机数是:83

第。。。。。。。。

C语言 随机函数

i++;是i=i+1;的缩写,c++之所以后面有++,就是因为有这样的缩写。

rand()是个函数,每次调用会给你返回一个unsigned int数,即无符号整数,具体这个函数可以百度百科rand(),返回的数用伪随机算法,在你看起来是随机变化的,范围在0~4294967295之间

%是c++的整数运算符,如果写a%b就是求a除以b以后的余数

rand()生成的数大于0~100之间的范围,rand()%100就会生成在0~99之间的随机整数

由于题目要求生成1~100之间的整数,所以用表达式rand()%100+1

如果想生成[0~3000)的随机数可以用表达式rand()%3000

如果想生成[a,b]范围的随机数,可以用表达式rand()%(b-a+1)+a来生成

比如要生成10~20之间的随机数,包含10和20在内,那么表达式是rand()%(20-10+1)+10

帮忙用C语言解决下随机函数的编程题

完整版纯C程序:

#includestdio.h

#includestdlib.h

#includetime.h

#define N 20

void sel_sort(int [],int); //选择排序

int search(int [],int,int); //查找

void insert(int [],int [],int,int); //插入

int num_by_mechine(void) //产生随机数

main()

{

int a[N],x;

int i,index,b[N+1];

srand(time(NULL)); //为随机数发生器rand()播种

for(i=0;iN;i++)

a[i]=num_by_mechine();

printf("before sel_sort...\n");

for(i=0;iN;i++)

printf("%4d",a[i]);

printf("\n");

sel_sort(a,N);

printf("after sel_sort...\n");

for(i=0;iN;i++)

printf("%4d",a[i]);

printf("\n");

printf("please input x:");

scanf("%d",x);

index=search(a,x,N);

if(index!=-1)

{

printf("find x,x=a[%d]!\n",index);

printf("delete a[%d]...\n",index);

for(i=index+1;iN;i++)

a[i-1]=a[i];

for(i=0;iN-1;i++)

printf("%4d",a[i]);

}

else

{

printf("no find!\n");

printf("after insert...\n");

insert(a,b,x,N);

for(i=0;iN+1;i++)

printf("%4d",b[i]);

}

}

int num_by_mechine(void)

{

return(rand()%100+1); //产生一个分布在1~100之间的随机整数

}

void sel_sort(int a[],int n)

{

int cur,i,t;

for(cur=0;curn-1;cur++)

for(i=cur;in;i++)

if(a[i]a[cur])

t=a[cur],a[cur]=a[i],a[i]=t;

}

int search(int a[],int x,int n)

{

int front=0,back=n-1,middle;

while(front=back)

{

middle=(front+back)/2;

if(xa[middle])

back=middle-1;

else if(xa[middle])

front=middle+1;

else

return(middle);

}

return -1;

}

void insert(int a[],int b[],int x,int n)

{

int i,j;

for(i=0;in;i++)

b[i]=a[i];

for(i=0;in;i++)

if(a[i]x)

{ for(j=n;ji;j--)

b[j]=b[j-1];

b[i]=x;

return;

}

b[n]=x;

}

c语言问题 题目是利用随机函数生成两个10-200内的随机数,并使程可以自动生成加法运算的题目

#include stdio.h

#include stdlib.h

#include "time.h"

char op(int j)   //打印 + - * / 符号 

{

switch(j)

{

case 1: return '+';

case 2: return '-';

case 3: return '*';

case 4: return '/';

}

}

int result(int a, int b, int operation)  //返回正确的结果 

{

switch(operation)

{

case 1: return a+b;

case 2: return a-b;

case 3: return a*b;

case 4: return a/b;

}

}

int main(int argc, char *argv[]) 

{

srand((unsigned)time(0));  //初始化随机种子 

int a,b,sum,operation;//operation为操作符,1:+ 2:- 3:* 4:/

int i;

for(i=1;i=10;i++) //循环为1到10题

{

int wrong_count=0;   //错误次数

int n;           //每题输入的答案 

int k;           //倍数,以便得到10-200之间的数

k=rand()%20+1;

a=(rand()%10+1)*k;   //随机取得a 

b=(rand()%10+1)*k;   //随机获得b 

operation=rand()%4+1; //随机+-*/ 

while(1)

{

system("cls"); //清屏

printf("第%d题:\n",i);

printf("%d %c %d = ",a,op(operation),b);

fflush(stdin); //清空输入缓冲,防止上次的输入被本次读取

scanf("%d",n);

if(n==result(a,b,operation))

{

printf("\nRight");

_getch();  //按任意键断续 

break; //退出while循环,进行下一题

}

else

{

wrong_count++;

if(wrong_count=3) //连错3次,打印后退出 

{

printf("\nWrong! You have tried three times! Test Over!");

return 0;

}

printf("\nWrong! Please try again.");

_getch();//按任意键再答一次 

continue; //断续while循环

}

}

}

return 0;

}


分享名称:c语言中的随机函数例题 c语言中的随机函数例题解析
本文地址:http://jkwzsj.com/article/hpohce.html

其他资讯