user-0 提问: 如何在程序两个输入之间计时

回复:
user: user-1
content: 打开include\time.h一眼。

user: user-2
content: 1. <time.h>中函数clock()，返回类型clock_t，精确度，毫秒级别 实例： #include <stdio.h>  #include <time.h>  #include <math.h>   void test() { 	int i = 0; 	int j = 0; 	double a = 0;  	while (i++ < 1000000) 	while (j++ < 1000000) 	{ 		a = sqrt(2.0); 	} }  int main(void) { 	clock_t start, finish; 	double  duration = 0.0;  	start = clock();  	test();  	finish = clock(); 	duration = (double)(finish - start)；输出单位ms 		duration = (double)(finish - start) / CLOCKS_PER_SEC; //输出单位为妙，精确到毫秒级 	//#define CLOCKS_PER_SEC 1000  	printf("%f seconds\n", duration);  	return 0; } 2、<time.h>中函数time(&t)， 精确度，秒级别 功能：取以秒为单位的，从1970年1月1日格林威治时间00 : 00 : 00算起的当前时间，并把它存在长整形变量t中，函数返回如前所述的时间秒值。 								测试程序如下： #include   "stdio.h"  #include   "time.h"       #include   "stdlib.h"  void main() { 	long   start, end; 	time(&start); 	delay(50000); 	time(&end); 	printf("end-start=%ld\n ", end - start); 	getch(); }  3. 最精确的计时：QueryPerformanceCounter来查询定时器的计数值，如果硬件里有定时器，它就会启动这个定时器，并且不断获取定时器的值，这样的定时器精度，就跟硬件时钟的晶振一样精确的。 #include <stdio.h>  #include <stdlib.h>  #include <windows.h>   void test() { 	int i = 0; 	int j = 0; 	double a = 0;  	while (i++ < 1000000) 	while (j++ < 1000000) 	{ 		a = sqrt(2.0); 	} }  int main(void) { 	LARGE_INTEGER start; 	LARGE_INTEGER end; 	LARGE_INTEGER freq;  	QueryPerformanceFrequency(&freq); 	QueryPerformanceCounter(&start);   	test();  	QueryPerformanceCounter(&end);  	printf("user time : %.10f seconds\n", (double)(end.QuadPart - start.QuadPart) / (double)freq.QuadPart);  	return 0; }

user: user-3
content: #include <time.h> #ifdef WIN32 #   include <windows.h> #else #   include <sys/time.h> #endif #ifdef WIN32 int gettimeofday(struct timeval *tp, void *tzp) {     time_t clock;     struct tm tm;     SYSTEMTIME wtm;     GetLocalTime(&wtm);     tm.tm_year     = wtm.wYear - 1900;     tm.tm_mon     = wtm.wMonth - 1;     tm.tm_mday     = wtm.wDay;     tm.tm_hour     = wtm.wHour;     tm.tm_min     = wtm.wMinute;     tm.tm_sec     = wtm.wSecond;     tm. tm_isdst    = -1;     clock = mktime(&tm);     tp->tv_sec = clock;     tp->tv_usec = wtm.wMilliseconds * 1000;     return (0); } #endif /* WIN32 */  这个函数  VC 没有，不过可以找个别人的实现

user: user-3
content: gettimeofday 表头文件：#include <sys/time.h> 函数原型：int gettimeofday(struct timeval *tv,struct timezone *tz) 函数说明：把目前的时间按tv所指的结构返回，当时地区的信息则放到tz所指的结构中 struct timeval {    long tv_sec; //秒    long tv_usec;//微妙 } struct timezone {    int tz_minuteswest;//和格林威治时间差了多少分钟    int tz_dsttime;    //日光节约时间的状态 }  #include <stdio.h> #include <sys/time.h>   int main(int argc, char** argv) {     timeval tv;     gettimeofday(&tv, NULL);     double cl = tv.tv_sec + (double)tv.tv_usec / 1000000;      getchar(); //暂停等待      gettimeofday(&tv, NULL);     cl = (tv.tv_sec + (double)tv.tv_usec / 1000000) - cl;      printf("暂停时间:%f\n", cl);      struct timezone tz;     gettimeofday(&tv, &tz);     printf("tv.tv_sec:%d\n", tv.tv_sec);     printf("tv.tv_usec:%d\n", tv.tv_usec);     printf("tz.tz_minuteswest:%d\n", tz.tz_minuteswest);     printf("tv.tz_dsttime:%d\n", tz.tz_dsttime);      return 0; }

user: user-4
content: #include <time.h>  clock_t_t beg = clock();  //你需要计时的程序  clock_t end = clock();  clock_t btw = end - beg; //单位毫秒，这个时间不是十分精确，一般用于计算大概时间

user: user-5
content: 参看：http://blog.csdn.net/morewindows/article/details/6854764

user: user-6
content: 百度一下time.h的函数吧 ，善用搜索引擎   直接百度解决问题的速度更快些吧。