C语言生成随机数的函数、延时函数

下面C语言代码使用了生成随机数的函数、延时函数。请大家仔细观察其显示效果。

从以下代码,我们可以得出一个重要的结论:当上述两类函数被放入循环时,应作出一定修改。同时还应关注其参数的定义位置(子函数外?子函数内?全局变量?局部变量?)。

另外大家要注意:scanf在输入double型时,应该使用%lf,而在printf时却只需使用%f.

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

double t_delay;
time_t start,end; //start,end修改后的位置

int createOrNot()
{

int flag;
//srand(time(NULL) );//srand()原先的位置
flag = (int)( (2*rand()/RAND_MAX) +1 );

return flag;//return 1 or 2
//1 create,2 not create.

}

void delay()
{
time_t start,end;//end原先的位置
double dif;
time (&start);
while( (dif= difftime (end,start) )<5000.0 )//注意这里
{
time (&end);

};

}

void delay(time_t end )//end修改后的位置
{
time_t start;//,end;
double dif;
time (&start);
while( (dif= difftime (end,start) )<2.0 )//注意这里
{
time (&end);

};

}

void delay(time_t end,double time_delay)//change...
{

time_t start;//,end;//change...
double dif;
time (&start);
time (&end);

while( (dif= difftime (end,start) ) < time_delay )
{

time (&end);

};

}

void delay(time_t start,time_t end)//change...
{

//time_t start;//,end;//change...
double dif;

time (&start);
time (&end);

while( (dif= difftime (end,start) ) < t_delay )
{

time (&end);

};

}

int main()
{

int i,flag = 1,times =10;

//time_t start,end; //start,end修改后的位置
srand(time(NULL) );//修正后,srand()所应在的位置。

for(i=0;i<times;i++)
{

flag= createOrNot();
printf("%d\n",flag);
delay();
//delay(end);
}

printf("\n\n");

for(i=0;i<times;i++)
{

flag= createOrNot();
printf("%d\n",flag);
//delay();
delay(end);
}

printf("t_delay:\n");
scanf("%lf",&t_delay);/////////////////////////////////////
//printf("t_delay:%f\n",t_delay);
for(i=0;i<times;i++)
{

flag= createOrNot();
printf("%d\n",flag);
//delay();
delay(end,t_delay);
}

printf("t_delay:\n");
scanf("%lf",&t_delay);

for(i=0;i<times;i++)
{

flag= createOrNot();
printf("%d\n",flag);
//delay();
delay(start,end);
}

}

时间: 2024-09-24 11:51:11

C语言生成随机数的函数、延时函数的相关文章

单片机 延时函数-延时函数时间计算问题

问题描述 延时函数时间计算问题 void delay_n_ms(uchar num) { uchar time; while(num) { time = 250; // fosc = 11.0592MHz CLK_DIV = 0; while(time) time --; num --; } } 这个函数的周期是1ms吗?为什么?求大神详解! 解决方案 你用这种循环是得不到精确的延时时间的,要想得到精确的1ms还的配置定时器来定时. 另外,你的这个函数周期是不是1ms我没有算,但是这是和你单片机

asp脚本延时函数代码

asp脚本延时函数代码,该函数不断计算当前时间和预设时间的差值,当超过预设时候后跳出循环,占用资源可能比较大. 以下是函数代码:<%  Function Delay(s)  Dim t = Now()  While DateDiff("s", t, Now) < s  Wend  End Function  %>

JS实现的生成随机数的4个函数分享

 这篇文章主要介绍了JS实现的生成随机数的4个函数分享,本文直接给出实现代码,需要的朋友可以参考下     第一种方法 代码如下: /* *@desc:生成随机字符串 *@remark:toString方法可以接收一个基数作为参数的原理,这个基数从2到36封顶.如果不指定,默认基数是10进制 */ function generateRandomAlphaNum(len) { var rdmString = ""; for (; rdmString.length < len; rd

delay-ubantu系统下,需要毫秒级的延时函数。

问题描述 ubantu系统下,需要毫秒级的延时函数. 毫秒级的延时函数,赐教赐教!包括头文件什么的.我找了Sleep,delay,可是头文件不存在.不会了-- 解决方案 头文件不存在是什么意思?如果是Ubuntu的man手册找不到头文件,可能是手册的问题.你可以用usleep函数,微秒级的 解决方案二: 死循环用rdtsc测量时间,精度在纳秒级http://blog.csdn.net/tbwood/article/details/5536597 解决方案三: sleep n 毫秒 #includ

嵌入式 arm-如何编写延时函数,求指点迷津

问题描述 如何编写延时函数,求指点迷津 cpu频率为400MHz,如何编写延时为1us的延时函数?请大哥门指点下.cpu为armv7架构的s5pv210处理器 解决方案 振荡频率为16MHZ,则Tcy=0.0625us. 编写us级延时函数如下: void Delay_us(unsigned char nCount) { while(--nCount); } 函数反汇编后如下: push a OFST: set 0 L13: dec(OFST+1,SP) jrne L13 pop a ret 主

指针-ucos中当调用延时函数时会释放cpu使用权,当延时时间到了以后又会夺取cpu使用权吗

问题描述 ucos中当调用延时函数时会释放cpu使用权,当延时时间到了以后又会夺取cpu使用权吗 当延时时间到了以后,这个延时的函数的优先级一定是最高的吗,这个是怎么保证的, ucos中好多次参数都是指针,或者指针的指针,变量或函数的数据类型也是很XX(不知道怎么形容,感觉不那么显眼一下子就能看懂,而是要一层一层的跟踪进去),

5-3 Linux内核计时、延时函数与内核定时器【转】

转自:http://www.xuebuyuan.com/510594.html 5-3 Linux内核计时.延时函数与内核定时器  计时 1. 内核时钟 1.1   内核通过定时器(timer)中断来跟踪时间流 1.2   硬件定时器以周期性的间隔产生时间中断,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的常数. 1.3   这个时间间隔通常取1ms到10ms. 2. jiffies计算器 2.1每次当定时器中断发生时,内核内部通过一个64位的变量jiffies_64做加一计

内核延时函数【转】

转自:http://www.mamicode.com/info-detail-514261.html 1) msleep:实现毫秒级的延时,该延时保证至少延时所设置的延时时间,不会提前超时返回,会让出CPU void msleep(unsigned int msecs) { unsigned long timeout = msecs_to_jiffies(msecs) + 1; while (timeout) timeout = schedule_timeout_uninterruptible(

函数名称 函数功能_ASP基础

函数名称 函数功能Cbool(string) 转换为布尔值Cbyte(string) 转换为字节类型的值Ccur(string) 转换为货币类值Cdate(string) 转换为日前类型的值Cdbl(string) 转换为双精度值Cint(string) 转换为整数值Clng(string) 转换为长整型的值Csng(string) 转换为单精度的值Cstr(var) 转换为字符串值Str(var) 数值转换为字符串Val(string) 字符串转换为数值****** ************