當前位置:首頁 » 編程語言 » c語言計時程序

c語言計時程序

發布時間: 2023-03-10 04:57:26

1. 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;
}

2. c語言 倒計時時鍾程序

如果你有TC,可以試一試。
VC 的 kbhit() 不能返回 鍵名。
23:59:59 -- 86400 秒

#include <stdio.h>
#include <windows.h>
#include <conio.h>

void main()
{
long int t;
int flag =0;
t = 86400;

printf("press S start, press E stop\n");
while(1)
{
if (kbhit() == 'S' || kbhit() == 's') flag =1;
if (kbhit() == 'E' || kbhit() == 'e') flag =0;
Sleep(1000);
if (flag == 1) t = t -1;
if (t <= 0) break;
printf("%d ",t);
}

3. c語言倒計時怎麼編

定位要倒計時的坐標!然後再需要倒計時的地方添加gotoxy(所定位的坐標),當然這只是十以下的倒計時,超過了十則會清除不了十位數上的數字,要解決這個辦法就是輸出%2d

4. c語言倒計時程序設計:要求從鍵盤輸入倒計的時間分數和秒數,按「回車鍵」開始倒計,直到計時時間結束。

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

intmain()
{
intsec;
intmin;
printf("請輸入時間:分鍾和秒數 ");
scanf("%d%d",&min,&sec);
printf("按回車鍵開機計時 ");
getchar();
for(min;min>0;min--)
{
for(sec;sec>=0;sec--)
{
Sleep(1);
if(sec==0)
{
sec==60;
break;
}
}
}
printf("計時結束 ");

}

5. 求個c語言小代碼,很簡單的倒計時程序

//有很多種方法,我這里用的是其中一種:
#include
#include
int main(void) {
int minutes;
printf("請輸入分鍾數:\n");
scanf("minutes");
for (; minutes >= 0; --minutes) {
for (int i = 60; i >= 0; --i) {
printf("還剩 %d 分鍾 %d 秒 結束\n", minutes, i);//輸出剩餘時間
sleep(1000);//延時函數延時一秒
};
};
printf("計時結束\n");
system("pause");
return 0;
};
//我沒上編譯器測試,但是具體架構就是這樣

6. c語言中怎麼設置計時器

#include <iostream>

#include <time.h>

using namespace std;

int main()

{

clock_t start = clock();

//do some process here

clock_t end = (clock() - start)/CLOCKS_PER_SEC;

cout<<"time comsumption is "<<end<<endl;

}

(6)c語言計時程序擴展閱讀

使用linux的系統設置計時器

#include <sys/time.h>

int main()

{

timeval starttime,endtime;

gettimeofday(&starttime,0);

//do some process here

gettimeofday(&endtime,0);

double timeuse = 1000000*(endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - startime.tv_usec;

timeuse /=1000;//除以1000則進行毫秒計時,如果除以1000000則進行秒級別計時,如果除以1則進行微妙級別計時

}

timeval的結構如下:

strut timeval

{

long tv_sec; /* 秒數 */

long tv_usec; /* 微秒數 */

};

7. c語言 倒計時程序

對硬體的啊。

P2=0;
P1=display_code[display_data[i]];
P2=k;
k=k>>1;
不懂。

不過感覺問題不大。先把main里的i的上限從250改到216.
在display()里做3個判斷(可能會要做個全局變數,或者加個參數,記錄當前是多少。)
判斷是否是0,大於10,大於100
另外,站長團上有產品團購,便宜有保證

8. c語言如何計時

  1. C語言中提供了許多庫函數來實現計時功能

  2. 下面介紹一些常用的計時函數

    1. time()

    頭文件:time.h

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

    功能:返回以格林尼治時間(GMT)為標准,從1970年1月1日00:00:00到現在的時此刻所經過的秒數

    用time()函數結合其他函數(如:localtime、gmtime、asctime、ctime)可以獲得當前系統時間或是標准時間。

    用difftime函數可以計算兩個time_t類型的時間的差值,可以用於計時。用difftime(t2,t1)要比t2-t1更准確,因為C標准中並沒有規定time_t的單位一定是秒,而difftime會根據機器進行轉換,更可靠。

    說明:C標准庫中的函數,可移植性最好,性能也很穩定,但精度太低,只能精確到秒,對於一般的事件計時還算夠用,而對運算時間的計時就明顯不夠用了。

    2. clock()

    頭文件:time.h

    函數原型:clock_t clock(void);

    功能:該函數返回值是硬體滴答數,要換算成秒,需要除以CLK_TCK或者 CLK_TCKCLOCKS_PER_SEC。比如,在VC++6.0下,這兩個量的值都是1000。

    說明:可以精確到毫秒,適合一般場合的使用。

    3. timeGetTime()

    頭文件:Mmsystem.h引用庫: Winmm.lib

    函數原型:DWORD timeGetTime(VOID);

    功能:返回系統時間,以毫秒為單位。系統時間是從系統啟動到調用函數時所經過的毫秒數。注意,這個值是32位的,會在0到2^32之間循環,約49.71天。

    說明:該函數的時間精度是五毫秒或更大一些,這取決於機器的性能。可用timeBeginPeriod和timeEndPeriod函數提高timeGetTime函數的精度。如果使用了,連續調用timeGetTime函數,一系列返回值的差異由timeBeginPeriod和timeEndPeriod決定。

    4. GetTickCount()

    頭文件:windows.h

    函數原型:DWORD WINAPI GetTickCount(void);

    功能:返回自設備啟動後的毫秒數(不含系統暫停時間)。

    說明:精確到毫秒。對於一般的實時控制,使用GetTickCount()函數就可以滿足精度要求。

    5. QueryPerformanceCounter()、QueryPerformanceFrequency()

    頭文件:windows.h

    函數原型:BOOLQueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);

    BOOLQueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

    功能:前者獲得的是CPU從開機以來執行的時鍾周期數。後者用於獲得你的機器一秒鍾執行多少次,就是你的時鍾周期。

    補充:LARGE_INTEGER既可以是一個8位元組長的整型數,也可以是兩個4位元組長的整型數的聯合結構, 其具體用法根據編譯器是否支持64位而定:

    在進行定時之前,先調用QueryPerformanceFrequency()函數獲得機器內部定時器的時鍾頻率,然後在需要嚴格定時的事件發生之前和發生之後分別調用QueryPerformanceCounter()函數,利用兩次獲得的計數之差及時鍾頻率,計算出事件經歷的精確時間。

    說明:這種方法的定時誤差不超過1微秒,精度與CPU等機器配置有關,一般認為精度為透微秒級。在Windows平台下進行高精度計時的時候可以考慮這種方法。

    6. gettimeofday()

    Linux C函數。

    頭文件:sys/time.h

    函數原型:int gettimeofday(struct timeval *tv,struct timezone *tz);

    說明:其參數tv是保存獲取時間結果的結構體,參數tz用於保存時區結果(若不使用則傳入NULL即可)。

    timeval的定義為:

    structtimeval{

    longtv_sec;//秒數

    longtv_usec;//微秒數

    }

    可見該函數可用於在linux中獲得微秒精度的時間。

    說明:使用這種方式計時,精度可達微秒。經驗證,在arm+linux的環境下此函數仍可使用。

9. c語言怎麼樣編寫一個時鍾程序

c語言時鍾程序代碼如下:

#include<windows.h>

#include<math.h>

#define ID_TIMER 1//計時器ID

#define TWOPI (2*3.14159)

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)

{

static TCHAR szAppName[]=TEXT("Clock");

HWND hwnd;

MSG msg;

WNDCLASS wndclass;

wndclass.cbClsExtra=0;

wndclass.cbWndExtra=0;

wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);

wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);

wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);

wndclass.hInstance=hInstance;

wndclass.lpfnWndProc=WndProc;

wndclass.lpszClassName=szAppName;

wndclass.lpszMenuName=NULL;

wndclass.style=CS_HREDRAW|CS_VREDRAW;

if(!RegisterClass(&wndclass))

{

MessageBox(NULL,TEXT("This program requires Windows

T"),szAppName,MB_ICONERROR);

return 0;

}

hwnd=CreateWindow(szAppName,TEXT("Analog Clock"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,iCmdShow);

UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

void Setsotropic(HDC hdc,int cxClient,int cyClient)

{

SetMapMode(hdc,MM_ISOTROPIC);

SetWindowExtEx(hdc,1000,1000,NULL);

SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);

SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL);

}

void RotatePoint(POINT pt[],int iNum,int iAngle)

{

int i;

POINT ptTemp;

for(i=0;i<iNum;i++)

{

ptTemp.x=(int)(pt[i].x*cos(TWOPI*iAngle/360)+pt[i].y*sin(TWOPI*iAngle/360));

ptTemp.y=(int)(pt[i].y*cos(TWOPI*iAngle/360)+pt[i].x*sin(TWOPI*iAngle/360));

pt[i]=ptTemp;

}

}

void DrawClock(HDC hdc)

{

int iAngle;

POINT pt[3];

for(iAngle=0;iAngle<360;iAngle+=6)

{

pt[0].x=0;

pt[0].y=900;

RotatePoint(pt,1,iAngle);

pt[2].x=pt[2].y=iAngle%5?33:100;

pt[0].x-=pt[2].x/2;

pt[0].y-=pt[2].y/2;

pt[1].x=pt[0].x+pt[2].x;

pt[1].y=pt[0].y+pt[2].y;

SelectObject(hdc,GetStockObject(BLACK_BRUSH));

Ellipse(hdc,pt[0].x,pt[0].y,pt[1].x,pt[1].y );

}

}

void DrawHands(HDC hdc,SYSTEMTIME *pst,BOOL fChange)

{

static POINT pt[3][5]={0,-150,100,0,0,600,-100,0,0,-150, 0,-200,50,0,0,800,-50,0,0,-200, 0,0,0,0,0,0,0,0,0,800 };

int i,iAngle[3];

POINT ptTemp[3][5];

iAngle[0]=(pst->wHour*30)%360+pst->wMinute/2;

iAngle[1]=pst->wMinute*6;

iAngle[2]=pst->wSecond*6;

memcpy(ptTemp,pt,sizeof(pt));

for(i=fChange?0:2;i<3;i++)

{

RotatePoint(ptTemp[i],5,iAngle[i]);

Polyline(hdc,ptTemp[i],5);

}

}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

{

static int cxClient,cyClient;

static SYSTEMTIME stPrevious;

BOOL fChange;

HDC hdc;

PAINTSTRUCT ps;

SYSTEMTIME st;

switch(message)

{

case WM_CREATE:

SetTimer(hwnd,ID_TIMER,1000,NULL);

GetLocalTime(&st);

stPrevious=st;

return 0;

case WM_SIZE:

cxClient=LOWORD(lParam);

cyClient=HIWORD(lParam);

return 0;

case WM_TIMER:

GetLocalTime(&st);

fChange=st.wHour!=stPrevious.wHour||st.wMinute!=stPrevious.wMinute;

hdc=GetDC(hwnd);

Setsotropic(hdc,cxClient,cyClient);

SelectObject(hdc,GetStockObject(WHITE_PEN));

DrawHands(hdc,&stPrevious,fChange);

SelectObject(hdc,GetStockObject(BLACK_PEN));

DrawHands(hdc,&st,TRUE);

stPrevious=st;

return 0;

case WM_PAINT:

hdc=BeginPaint(hwnd,&ps);

Setsotropic(hdc,cxClient,cyClient);

DrawClock(hdc);

DrawHands(hdc,&stPrevious,TRUE);

EndPaint(hwnd,&ps);

return 0;

case WM_DESTROY:

KillTimer(hwnd,ID_TIMER);

PostQuitMessage(0);

return 0;

}

return DefWindowProc(hwnd,message,wParam,lParam);

}

熱點內容
單本小說網站源碼 發布:2024-11-06 21:11:17 瀏覽:546
mtp緩存 發布:2024-11-06 21:06:43 瀏覽:21
P40存儲卡 發布:2024-11-06 21:02:15 瀏覽:921
大容量鐵電存儲器 發布:2024-11-06 21:02:12 瀏覽:451
淘寶課腳本 發布:2024-11-06 21:00:41 瀏覽:688
網路機櫃和伺服器櫃有什麼不同 發布:2024-11-06 20:50:11 瀏覽:965
戰地5如何查看所有伺服器 發布:2024-11-06 20:46:42 瀏覽:654
sql返回執行結果 發布:2024-11-06 20:30:55 瀏覽:961
雷蛇怎麼配置 發布:2024-11-06 19:45:04 瀏覽:508
pm伺服器地址怎麼填 發布:2024-11-06 19:40:35 瀏覽:771