㈠ c語言程序運行計時
可以使用time.h裡面的clock函數
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
long i = 10000000L;
clock_t start, finish;
double ration; /* 測量一個事件持續的時間*/
printf( "Time to do %ld empty loops is ", i) ;
start = clock();
while(i--);
finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", ration );
system("pause");
return 0;
}
㈡ 求C語言程序:如何獲得一個程序運行的時間
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i;
clock_t start,finish;
start=clock();
for(i=0;i<=1000000;i++)
;
finish=clock();
printf("運行時間是%f\n",difftime(finish,start));//表示的是毫秒即千分之一秒
return 0;
}
㈢ C語言程序運行時間測試
C/C++中的計時函數是clock(),而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:
clock_t clock( void );
這個函數返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元(clock tick)數,在MSDN中稱之為掛鍾時間(wal-clock)。其中clock_t是用來保存時間的數據類型,在time.h文件中,我們可以找到對它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鍾會有多少個時鍾計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000) //CLOCKS_PER_SEC為系統自定義的
可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
void elapsed_time()
{
printf("Elapsed time:%u secs./n",clock()/CLOCKS_PER_SEC);
}
當然,你也可以用clock函數來計算你的機器運行一個循環或者處理其它事件到底花了多少時間:
#include 「stdio.h」
#include 「stdlib.h」
#include 「time.h」
int main( )
{
long i = 10000000L;
clock_t start, finish;
double Total_time;
/* 測量一個事件持續的時間*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i--) ;
finish = clock();
Total_time = (double)(finish-start) / CLOCKS_PER_SEC;
printf( "%f seconds/n", Total_time);
return 0;
}
在筆者的機器上,運行結果如下:
Time to do 10000000 empty loops is 0.03000 seconds
上面我們看到時鍾計時單元的長度為1毫秒,那麼計時的精度也為1毫秒,那麼我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標准C/C++中,最小的計時單位是一毫秒。
㈣ 用C語言編寫一個程序顯示日期
#include <stdio.h>
#include <windows.h>
main()
{
//定義一個時間結構存儲時間數據;
SYSTEMTIME *stm;
//定義了十二個月份的數組,用的時候直接調用
char month[12][10] = {"January","February","March",
"April","May","June","July","August",
"September","October","November","December"};
//為時間結構體申請空間(c語言中必須)
stm = (SYSTEMTIME*)malloc(sizeof(SYSTEMTIME));
//獲取系統時間
GetSystemTime(stm);
//顯示時間
printf("%d\st %s %d",stm->wDay,month[stm->wMonth-1],stm->wYear);
}
㈤ 編寫一個簡單的C語言程序,在屏幕上顯示一行時間(包含小時、分鍾和秒鍾)的信息
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
int main()
{
time_t timep,Tim;
struct tm *p;
time(&timep);
p = localtime(&timep); //此函數獲得的tm結構體的時間,是已經進行過時區轉化為本地時間
//p = gmtime(&timep); //把日期和時間轉換為格林威治(GMT)時間的函數
int Year = 1900 + p->tm_year;
int Month = 1 + p->tm_mon;
int Day = p->tm_mday;
int Hour = p->tm_hour;
int Minute = p->tm_min;
int Second = p->tm_sec;
char year[20];
char month[20];
char day[20];
char hour[20];
char minute[20];
char second[20];
printf("hour=%d\n", Hour);
printf("minute=%d\n", Minute);
printf("second=%d\n", Second);
return 0;
}
每編譯一次就會顯示這一刻的系統時間;這個程序我也不太懂,我學長講了半天,數據結構都整出來了,也沒把我整明白,我再研究研究;希望能幫到你吧;
㈥ c語言計算一個程序所用的時間
1、把clock_t全部換為double
2、禁止編譯器優化(DEBUG模式)
㈦ 用c語言編寫程序查詢日期
YMD_2_JD() 計算年月日 是 該年的第幾天。
YMD_2_WeekDay()計算某年月日 是 星期幾,用 WeekDayName[] 顯示星期幾的字元串。
#include<stdio.h>
int YMD_2_JD(int Y, int M, int D){
const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int JD,i;
JD=D;
for (i=0;i<M;i++) JD+=MonthDay[i];
if (((Y%4==0)&&(Y%100!=0)||(Y%400==0)) && (M>2)) JD++;
return JD;
}
int YMD_2_WeekDay(int Y, int M, int D){
int offset,jd,weekD;
offset = ((Y-1)+(Y-1)/4-(Y-1)/100+(Y-1)/400) % 7 ;
jd = YMD_2_JD(Y,M,D);
weekD = (jd + offset) % 7;
return weekD;
}
char *WeekDayName[]={" ","Mon","Tue","Wen","Thu","Fri","Sat","Sun"};
main(){
int Y,M,D;
printf("input year month day, for example 2015 3 31:\n");
scanf("%d %d %d",&Y,&M,&D);
printf("It is %dth day\n",YMD_2_JD(Y,M,D));
printf("It is %s.\n",WeekDayName[YMD_2_WeekDay(Y,M,D)]);
return 0;
}
㈧ 如何在c語言中記錄程序運行時間
有個time.h 頭文件
clock_t start,end;
start=clock();
......
end = clock();
end-start就是了。
單位為ms,但是不能太精確,因為其實返回的是clock數,但是一般夠用了,你可以搜一下。
㈨ 單片機c語言程序執行時間
這個要看單片機的執行效率了,現在以1T的就是晶振多少就執行多少條指令,如果是普通的就是12T的是把晶振除以12再執行一條指令