重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言中的cai随机函数 c语言随机变量函数

c语言随机数函数是什么?

C语言随机函数主要用于实现一组随机数的生成。

十多年的荔湾网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整荔湾建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“荔湾网站设计”,“荔湾网站推广”以来,每个客户项目都认真落实执行。

代码示例如下:

#includestdio.h

#includestdlib.h

int main ()

{

int a;

a=rand()%4;

printf("%d\n",a);

return 0;

}

C预先生成一组随机数,每次调用随机函数时从指针所指向的位置开始取值,因此使用rand()重复运行程序产生的随机数都是相同的,可以通过srand()函数来改变指针位置。

扩展资料:

C语言随机函数指针位置

void srand( unsigned int seed )

改变随机数表的指针位置(用seed变量控制)。一般配合time(NULL)使用,因为时间每时每刻都在改变,产生的seed值都不同。

基于毫秒级随机数产生方法:

#includewindows.h

种子设为:srand(unsigned int seed);

srand(GetTickCount());

参考资料:百度百科-C语言随机函数

C语言编CAI...要哭了,求大神指点!

这个题目还是不错的,比较考程序流程和函数的使用,我写了一个大概的样子。你看看有没有问题,有不懂的,请追问:

#include stdio.h

#include conio.h

#include stdlib.h

#include time.h

#include math.h

typedef struct // 定义结构体存储随机操作数

{

int a; 

int b;

}RandNum; 

// 获得随机操作数函数

RandNum GetRandNums()

{

RandNum rn = {0, 0};

rn.a = rand()%10 + 1;

rn.b = rand()%10 + 1;

return rn;

}

// 获得随机操作符函数

int GetOperator()

{

//srand((unsigned)time(NULL) ); 

return rand()%4+1;

}

// 任务1

int task1()

RandNum rn = GetRandNums(); // 获得随机操作数

int a=rn.a, b=rn.b;

int ans = 0;    // 用户输入的答案变量

printf("%d*%d=?\t", rn.a, rn.b);

scanf("%d", ans);

if (ans == a*b)

{

printf("Right!");

return 1;

}

else

{

printf("Wrong!Please try again.\n");

return 0;

}

}

// 任务2

int task2()

int i;

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

{

if(1 == task1())  

break;   

}

if(i == 3)

{

printf("Wrong!You have tried three times!Test over!");

return 0;

}

else 

return 1;

}

// 任务3

int task3()

{

int i, RightNum=0;

printf("\tYou will answer 10 problems.\n");

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

{

printf("Problem %d\t", i+1);

if(1 == task1())  

RightNum += 1;  

system("cls");

}

printf("Your total score is: %d\n", RightNum*10);

printf("You answer accuracy is: %d%%\n", RightNum*10);

return 0;

}

// 任务4

int task4()

{

int flag=0, RightNum = 0;

RandNum rn = {0, 0};

float a=rn.a, b=rn.b;

int op = 0;     // 操作符变量 1234 对应于 +-*/

float ans = 0, err = 1;

printf("You will answer 10 problems.\n");

for(int i=0; i10; i++)

{

rn = GetRandNums();  // 获得新的随机操作数

op = GetOperator();  // 获得新的随机操作服 

a = rn.a;

b = rn.b;

flag = 0;    // 回答正确与否标志位,初始化为0

switch (op)

{

case 1:     // 若为+

printf("%.0f+%.0f=?\t", a, b);

scanf("%f", ans);

err = abs(ans - (a+b));

if(err == 0 )

flag = 1;

break;

case 2:     // 若为-

printf("%.0f-%.0f=?\t", a, b);

scanf("%f", ans);

err = abs(ans - (a-b));

if(err == 0)

flag = 1;

break;

case 3:     // 若为*

printf("%.0f*%.0f=?\t", a, b);

scanf("%f", ans);

err = abs(ans - (a*b));

if(err == 0)

flag = 1;

break;

case 4:     // 若为/

printf("%.0f/%.0f=?\t", a, b);

scanf("%f", ans);

err = abs(ans - (a/b));

if(err  1e-4)

flag = 1;

break;

}

if(flag)    // 若回答正确

{

printf("\t\tRight!\n");

RightNum += 1;

}

else 

printf("\t\tWrong!\n");

}

printf("Your total score is:%d", RightNum*10);

return RightNum*10;

}

// 任务5

int task5()

{

int accuracy = 0, i=0; 

while (accuracy  75)

{

printf("This is your %d st try:\n", i+1);

accuracy = task4();

if(accuracy  75)

{

i++;

system("cls");

}

}

printf("\n\tGood!\n");

return 1;

}

// 对答案判别函数(任务6中用到),判别回答的精确度

// 答案误差1e-2 为Right,1e-3为Good,1e-4为Excellent,1e-5为Perfect

int judge(float err)

{

int option = 0;

float base = 1e5;

for (int i=0; i4; i++) // 判断误差级别

{

if (err*base  1)

{

option = 4-i;

break;

}

base = base / 10;

}

switch (option)

{

case 1:      // 误差级别1, err1e-2

printf("\t\tRight!\n");

break;

case 2:      // 误差级别2, err1e-3

printf("\t\tGood!\n");

break;

case 3:      // 误差级别3, err1e-4

printf("\t\tExcellent!\n");

break;

case 4:      // 误差级别4, err1e-5

printf("\t\tPerfect!!\n");

break;

default:     // 若误差级别不在范围内,判为错误

printf("\t\tWrong!\n");

return 0;

break;

}

return 1;

}

// 任务6

int task6()

{

int flag=0, RightNum = 0;

RandNum rn = {0, 0};

float a=rn.a, b=rn.b;

int op = 0;

float ans = 0, err = 1;

printf("You will answer 10 problems.\n");

for(int i=0; i10; i++)

{

rn = GetRandNums();

op = GetOperator();

a = rn.a;

b = rn.b;

flag = 0;

switch (op)

{

case 1: 

printf("%.0f+%.0f=?\t", a, b);

scanf("%f", ans);

err = abs(ans - (a+b));  // 获得用户的回答与答案的误差

flag = judge(err);   

break;

case 2:

printf("%.0f-%.0f=?\t", a, b);

scanf("%f", ans);

err = abs(ans - (a-b));

flag = judge(err);  

break;

case 3:

printf("%.0f*%.0f=?\t", a, b);

scanf("%f", ans);

err = abs(ans - (a*b));

flag = judge(err);  

break;

case 4:

printf("%.0f/%.0f=?\t", a, b);

scanf("%f", ans);

err = abs(ans - (a/b));

flag = judge(err);  

break;

}

if(flag)

{   

RightNum += 1;

}

}

printf("Your total score is:%d", RightNum*10);

return RightNum*10;

}

// 主函数

int main(void)

{

srand((unsigned)time(NULL) ); 

task6();

getch();

return 0;

}

C语言中产生随机数的函数是什么?

c语言中产生随机数的相关函数主要包括srand和rand函数,两者配合生成随机数据,测试代码如下,

#includestdio.h

#include stdlib.h

#include time.h

void main()

{

int i=0,j=0;

int p[5][5]={0};

srand(time(NULL));

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

for(j=0;j5;j++)

p[i][j]=rand()%100+1;//产生1-100的随机数存入数组p中

printf("二维数组p为:\n");

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

{

for(j=0;j5;j++)

printf("%d\t",p[i][j]);

printf("\n");

}

}

一般srand和rand配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。


分享文章:c语言中的cai随机函数 c语言随机变量函数
网站网址:http://cqcxhl.cn/article/dodepoj.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP