#include <time.h>

1 _strtime

2 difftime

3 srand

4 time

1 _strtime

函数简介

函数名: _strtime

头文件: time.h

函数原型: char * _strtime(char *)

功能: 获取当前系统时间(不包括日期),函数以字符指针形式为返回.

2 difftime

功能:返回两个time_t型变量之间的时间间隔,即 计算两个时刻之间的时间差。

用法: double difftime(time_t time2, time_t time1);

头文件:time.h

 1 #define _CRT_SECURE_NO_WARNINGS
 2 
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5 #include <time.h>
 6 
 7 main()
 8 {
 9     time_t start, end;
10     double res = 0;
11 
12     time(&start);//获取时间,传递给start
13 
14     for (int i = 0;i < 999999999;i++)
15     {
16         res += i;
17     }
18 
19     printf("%f
", res);
20 
21     time(&end);//获取结束时间
22     
23     printf("消耗时间%f
", difftime(end, start));
24     
25     system("pause");
26 }

 

3 srand

srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed);

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

指定范围产生随机数

srand((unsigned)time(null));

(a,b) (rand()%(b-a+1))+a-1

[a,b) (rand()%(b-a))+a

(a,b] (rand()%(b-a))+a+1

[a,b] (rand()%(b-a+1))+a

以下程序为猜数,随机生成0-100的数,大于80赢,其他输。

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 /* 之所以要这个头文件,因为需要使用时间数据类型time_t */
 5 
 6 main()
 7 {
 8     time_t ts;        /* 时间变量 */
 9 
10     srand((unsigned int)time(&ts));        /* time是函数,获取时间保存结果在ts中 */
11 
12     int num = rand() % 100 + 1;        /* 获取随机数 */
13 
14     printf("num=%d
", num);
15 
16     num > 80 ? printf("win") : printf("lose");
17 }

4 time

函数名称: time

函数原型: time_t time(time_t *timer)

函数功能: 得到系统当前的日历时间 函数返回: 系统当前日历时间,如果不能获得当前日历时间,则返回-1

参数说明: timer=NULL时得到机器日历时间,timer为有效指针时,更新timer为系统当前时间,time_t是一个long类型

所属文件: <time.h>

 1 #define _CRT_SECURE_NO_WARNINGS
 2 
 3 #include<stdio.h>
 4 #include<stdlib.h>
 5 #include<time.h>
 6 #include<windows.h>
 7 
 8 main()
 9 {
10     time_t start, end;
11 
12     time(&start);//获取当前时间,放在start变量中
13 
14     //Sleep(3000);//休眠3秒
15 
16     register double res = 0.0;//结果
17 
18     register int i;
19 
20     for (i = 0;i < 3000000000;i++)
21     {
22         res += i;
23     }
24 
25     printf("%f
", res);
26 
27     time(&end);//获取当前时间,放在end变量中
28 
29     printf("%d
", (unsigned int)(end - start));//获取时间差
30 
31     system("pause");
32 }
原文地址:https://www.cnblogs.com/denggelin/p/5469530.html