計算時間的副程式

精確度可以到 10 ms

[code]
// file: psc51.cpp
// for time1(), time2()

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <sys/timeb.h>
#include <time.h>
// ----------------------------------------------

#include "sj01.h"
// ----------------------------------------------

// time1(&t1);
void time1(long *t1)
{
/* FTIME.C: This program uses _ftime to obtain the current
* time and then stores this time in timebuffer.

millitm
Fraction of a second in milliseconds.

time
Time in seconds since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC).
*/

struct _timeb timebuffer;
// char *timeline;
long t2, t3, t4, t5, t6;

_ftime( &timebuffer );
// timeline = ctime( & ( timebuffer.time ) );

t2= timebuffer.time;// 秒
t3= t2%(1L*24L*60L*60L);
t4= t3*1000L;

t5= timebuffer.millitm;// 千分之ㄧ秒
t6= t4 + t5;
*t1= t6;

// printf( "The time is %.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20] );
// printf("%ld, %ld, %ld, %ld, %ld, \n",
// t2, t3, t4, t5, t6);
}// end of time1()
// ----------------------------------------------

// time2( t1, &dt);
void time2(long t1, double *dt)
{
long t2;
time1(&t2);

*dt= (t2 - t1)/1000.0;

// (*dt) >= 0
if ((*dt) < 0) {
(*dt)+= 1.0*24.0*60.0*60.0;
}
}// end of time2()
// ----------------------------------------------

void main()
{
int no, sum, i, ct1= 0;
long t1;
double dt;
// ----------------------------------------------

no= 10;
skip(3);
while (no > 0) {
time1(&t1);

sum= 0;
for (i=1;i<=no;i++) {
sum+= i;
}
time2(t1, &dt);
// ----------------------------------------------

ct1++;
printf("ct1= %3ld, no= %12ld, sum= %12ld, t1= %8ld, dt= %8.4lf\n",
ct1, no, sum, t1, dt);

if (dt > 0) {
pause();
}

if (ct1>=16) {
// break;
}

no*= 2;
}

skip(1);
printf("*** end of program!\n");
}// end of main()
[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值