當前位置:首頁 » 編程語言 » c語言間隔12次進一次
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言間隔12次進一次

發布時間: 2023-03-13 17:14:44

c語言 每一次循環間隔的時間。for while這類,每60s循環一次,怎麼用時間控制最好不要用

每次循環進程休眠60秒

Ⅱ C語言的問題怎麼解決

第一條語句應該沒問題,不清楚的可能是while循環開始。
首先while語句先執行條件里的賦值,即i=k-1;這時i=18。並且條件為真。只要是不為零,都為真。因為條件里的是賦值語句而不是關系語句(是=號,而不是==號)。
進入循環後執k=k-3,此時k=16.
然後是if語句。16%5=1,不等於0,因此執行else部分。
此時else中的if的條件是16<5,不成立。執行下面的語句i++。i的值為19.
進入下一次循環。
此時k=16,while條件中i=15,然後k=13,13%5=3,i=16,進入下一次循環。
此時k=13,while條件中i=12,然後k=10,10%5=0,條件成立,i=13,continue直接進入下一次循環。
此時k=10,while條件中i=9,然後k=7,7%5=2,i=10,進入下一次循環。
此時k=7,while條件中i=6,然後k=4,4%5=4,此時else中的if語句條件(k<5)成立,break語句跳出循環。
最後執行printf語句。
i=6,k=4
寫這么多很辛苦,希望給予採納!

Ⅲ 關於C語言中continue 的用法

do

{

if((k%2)!=0)continue;

s+=k;k++;

}while(k>10);

C、Java,MATLAB語言中,continue語句一般形式為"continue;"

在C++、C#中有所使用。

其作用為結束本次循環。即跳出循環體中下面尚未執行的語句,對於while循環,繼續求解循環條件。而對於for循環程序流程接著求解for語句頭中的第三個部分expression表達式。

(3)c語言間隔12次進一次擴展閱讀:

注意

1.break可以在if-else中使用直接跳出當前循環。

2. 在多層循環中, 一個break語句只向外跳一層。

continue語句的作用是跳過循環體中剩餘的語句並到循環末尾而強行執行下一次循環。

continue語句只用在for、while、do-while等循環體中, 常與if條件語句一起使用, 用來加速循環。

Ⅳ C語言程序怎樣實現時間間隔。

C編程 #include <time.h>

用 clock() 計時。
下面是等待多少毫秒(0.001秒)的子程序:
void wait ( int ms )
{
clock_t endwait;
endwait = clock () + ms * CLOCKS_PER_SEC / 1000 ;
while (clock() < endwait) {}
}

main()
{
int i;
for (i=0;i<10;i++)
{
wait ( 100 ); // 等0.1秒
printf("%d ",i);
}
}

Ⅳ C語言時間間隔

double difftime(
time_t timer1,
time_t timer0
);
double _difftime32(
__time32_t timer1,
__time32_t timer0
);
double _difftime64(
__time64_t timer1,
__time64_t timer0
);

參數

timer1
關閉時。
timer0
啟動時間。
返回值

difftime 返回經過的時間 (以秒為單位),從 timer0 到 timer1。 返回的值是一個雙精度浮點數。 返回值可能為 0,指示錯誤。
備注

difftime 函數計算兩個提供的時間值 timer0 和 timer1之間的差異。

Ⅵ 怎麼使用C語言實現每隔一段時間執行一個函數

Windows提供了定時器,幫助編寫定期發送消息的程序。定時器一般通過一下兩中方式通知應用程序間隔時間已到。 ⑴ 給指定窗口發送WM_TIMER消息,也就是下面的給出在窗口類中使用的方法。 ⑵ 調用一個應用程序定義的回調函數,也就是在非窗口類中使用方法。 4.1 在窗口類中使用定時器 在窗口類中使用定時器比較簡單。假如我們想讓這個窗口上放置一個電子鍾,這樣我們必須每1秒或者0.5秒鍾去更新顯示顯見。按照下面的步驟,就可以完成這個電子鍾程序,並且知道如何在窗口類中使用定時器: 首先做在我們新建項目的主窗口上添加一個Label控制項,用來顯示時間。接著 ⑴ 用函數SetTimer設置一個定時器,函數格式如下: UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD)); 這個函數是CWnd類的一個成員函數,其參數意義如下: nIDEvent: 為設定的定時器指定的定時器標志值,設置多個定時器的時候,每個定時器的值都不同,消息處理函數就是通過這個參數來判斷是哪個定時器的。這里我們設定為1。 nElapse: 指定發送消息的時間間隔,單位是毫秒。這里我們設定為1000,也就是一秒。 lpfnTimer: 指定定時器消息由哪個回調函數來執行,如果為空,WM_TIMER將加入到應用程序的消息隊列中,並由CWnd類來處理。這里我們設定為NULL。 最後代碼如下:SetTimer(1,1000,NULL); ⑵ 通過Class Wizard給主窗口類添加一個WM_TIMER消息的映射函數,默認為OnTimer(UINT nIDEvent)。 ⑶ 然後我們就可以在OnTimer(UINT nIDEvent)的函數實現中添加我們的代碼了。參數nIDEvent就是我們先前設定定時器時指定的標志值,在這里我們就可以通過它來區別不同的定時器,而作出不同的處理。添加的代碼如下:switch(nIDEvent) { case 1: CTime m_SysTime = CTime::GetCurrentTime(); SetDlgItemText(IDC_STATIC_TIME,m_SysTime.Format("%Y年%m月%d日 %H:%M:%S")); break; } 代碼中的IDC_STATIC_TIME就是我們先前添加的Label控制項的ID。 至此,我們的電子鍾的程序就完成了。 4.2 在非窗口類中使用定時器 在非窗口類中使用定時器就要用到前面我們介紹到的所有知識了。因為是無窗口類,所以我們不能使用在窗口類中用消息映射的方法來設置定時器,這時候就必須要用到回調函數。又因為回調函數是具有一定格式的,它的參數不能由我們自己來決定,所以我們沒辦法利用參數將this傳遞進去。可是靜態成員函數是可以訪問靜態成員變數的,因此我們可以把this保存在一個靜態成員變數中,在靜態成員函數中就可以使用該指針,對於只有一個實例的指針,這種方法還是行的通的,由於在一個類中該靜態成員變數只有一個拷貝,對於有多個實例的類,我們就不能用區分了。解決的辦法就是把定時器標志值作為關鍵字,類實例的指針作為項,保存在一個靜態映射表中,因為是標志值是唯一的,用它就可以快速檢索出映射表中對應的該實例的指針,因為是靜態的,所以回調函數是可以訪問他們的。 首先介紹一下用於設置定時的函數: UINT SetTimer( HWND hWnd, // handle of window for timer messages UINT nIDEvent, // timer identifier UINT uElapse, // time-out value TIMERPROC lpTimerFunc // address of timer procere ); 其中的參數意義如下: hWnd: 指定與定時器相關聯的窗口的句柄。這里我們設為NULL。 nIDEvent: 定時器標志值,如果hWnd參數為NULL,它將會被跳過,所以我們也設定為NULL。 uElapse: 指定發送消息的時間間隔,單位是毫秒。這里我們不指定,用參數傳入。 lpTimerFunc: 指定當間隔時間到的時候被統治的函數的地址,也就是這里的回調函數。這個函數的格式必須為以下格式: VOID CALLBACK TimerProc( HWND hwnd, // handle of window for timer messages UINT uMsg, // WM_TIMER message UINT idEvent, // timer identifier DWORD dwTime // current system time ); 其中的參數意義如下: hwnd: 與定時器相關聯的窗口的句柄。 uMsg: WM_TIMER消息。 idEvent: 定時器標志值。 deTime: 系統啟動後所以經過的時間,單位毫秒。 最後設定定時器的代碼為:m_nTimerID = SetTimer(NULL,NULL,nElapse,MyTimerProc); 先通過Class Wizard創建一個非窗口類,選擇Generic Class類類型,類名稱為CMyTimer,該類的作用是每隔一段時間提醒我們做某件事情,然後用這個類創建三個實例,每個實例以不同的時間間隔提醒我們做不同的事情。 MyTimer.h#include class CMyTimer; //用模板類中的映射表類定義一種數據類型 typedef CMap CTimerMap; class CMyTimer { public: //設置定時器,nElapse表示時間間隔,sz表示要提示的內容 void SetMyTimer(UINT nElapse,CString sz); //銷毀該實例的定時器 void KillMyTimer(); //保存該實例的定時器標志值 UINT m_nTimerID; //靜態數據成員要提示的內容 CString szContent; //聲明靜態數據成員,映射表類,用於保存所有的定時器信息 static CTimerMap m_sTimeMap; //靜態成員函數,用於處理定時器的消息 static void CALLBACK MyTimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime); CMyTimer(); virtual ~CMyTimer(); }; MyTimer.cpp#include "stdafx.h" #include "MyTimer.h" //必須要在外部定義一下靜態數據成員 CTimerMap CMyTimer::m_sTimeMap; CMyTimer::CMyTimer() { m_nTimerID = 0; } CMyTimer::~CMyTimer() { } void CALLBACK CMyTimer::MyTimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime) { CString sz; sz.Format("%d號定時器:%s", idEvent, m_sTimeMap[idEvent]->szContent); AfxMessageBox(sz); } void CMyTimer::SetMyTimer(UINT nElapse,CString sz) { szContent = sz; m_nTimerID = SetTimer(NULL,NULL,nElapse,MyTimerProc); m_sTimeMap[m_nTimerID] = this; } void CMyTimer::KillMyTimer() { KillTimer(NULL,m_nTimerID); m_sTimeMap.RemoveKey(m_nTimerID); } 這樣就完成了在非窗口類中使用定時器的方法。以上這些代碼都在Windwos 2000 Professional 和 Visual C++ 6.0中編譯通過