我想把時間當作是跳出迴圈的條件
該怎麼做呢?
比如說 我想知道一秒能跑幾次空的迴圈
這樣該怎麼寫?
還有一些時間函數的功用及用法
可以舉些例子嗎?
拜託哩~"~
因為老師沒教過
所以來這問問大家QQ
2007-02-05 21:09:31 · 2 個解答 · 發問者 ? 4 in 電腦與網際網路 ➔ 程式設計
你可以寫一次給我看看...附加一些說明
拜託哩..
2007-02-06 13:35:25 · update #1
#include
#include
#include
#define ITR1 INT_MAX // int 最大值
#define ITR2 46340 // 根號 int 最大值
int main()
{ int i, j; // 你也可以用 unsigned
clock_t t; // clock 傳回值的標準型態
t = clock(); // 現在時間
for (i=ITR1; i; i--) ; 空轉 ITR1 次
t = clock() - t;
printf("It costs me %d ticks for %d iterations.\n", t, ITR1);
printf("Each iteration takes me %g second.\n\n", (float)t/ITR1/CLOCKS_PER_SEC);
// CLOCKS_PER_SEC, 每秒多少 clocks
t = clock(); // 雙迴圈,如果你電腦太快,單迴圈還是計不了時間
for (i=ITR2; i; i--)
for (j=ITR2; j; j--) ;
t = clock() - t;
printf("It costs me %d ticks for nested %d iterations.\n", t, ITR2*ITR2);
printf("On average, each iteration takes me %g second.\n", (float)t/ITR2/ITR2/CLOCKS_PER_SEC);
return 0; // 作業系統要求,本程式沒用
}
若用 VC,要用 Ctrl F5 才會看到結果
基本上是這樣。
但你也可以換成 unsigned, long 等,要注意各型別的上限就是了。
加油! ^__^
2007-02-08 21:08:48 · answer #1 · answered by ? 7 · 0⤊ 0⤋
MSDN有一隻範例程式,我想好好研究這個應該是可以達到你的要求,
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_crt_time.asp
雖然我個人覺得利用讀系統時間的方式來作為迴圈跳出條件是一種滿沒有效率的寫法,如果你是要拿來測效能,光這迴圈所造成的額外負擔(Overhead)就非常大了,Anyway,你或許有你的考量,還是要看整體程式規劃才是
所有時間函式列表
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_time_management.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_crt_time_management.asp
歐對了,如果有興趣鑽研程式,可以去弄弄看中文的MSDN,直接灌在自己的電腦上,以後要查函式還有程式範例就會非常容易了
希望對你有幫助
2007-02-05 21:28:52 · answer #2 · answered by 螞蟻 3 · 0⤊ 0⤋