#include <stdlib.h> #include <math.h> #include <windows.h> const double PI = 3.1415926; const int count = 200; const double w = 0.01; const int value = 300; int main() { DWORD busySpan[count]; //DWORD是unsign long类型 DWORD sleepSpan[count]; int half = value / 2; double f = 0; for(int i = 0; i < 200; i++) { busySpan[i] = (DWORD)(half + sin(PI * f) * half); sleepSpan[i] = value - busySpan[i]; f += w; } int j = 0; DWORD StartTime = 0; while(true) { DWORD StartTime = GetTickCount(); int j = j % count; while((GetTickCount() - StartTime) <= busySpan[j]) ; Sleep(sleepSpan[j]) ; j++; } return 0; }