Code đồng hồ bấm giờ bị chậm hơn đồng hồ

Em code như vậy nhưng lúc chạy nó chậm hơn đồng hồ, nếu bỏ lệnh xóa màn hình vào thì chạy càng chậm hơn. A/c cho em hỏi tại sao ạ, và sửa ntn :slight_smile:

#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;

int main()
{
	int h = 0, min = 0, sec = 0, star = 0;
	cout << "========== Dong ho bam giay =============" << endl;
	cout << "Press any key to start !!" << endl;

	getch();

	for (;;)
	{
		Sleep(10);
		star++;
		if (star == 100)
		{
			sec++;
			star = 0;
			if (sec == 60)
			{
				min++;
				sec = 0;
			}
			if (min == 60)
			{
				h++;
				min = 0;
			}
		}
		cout << h << " : " << min << " : " << " : " << sec << " : " << star << endl;
		//cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
		//system("cls");
	}


	system("pause");
	return 0;
}

Uploading…

sleep(10) tức là chỉ có 10ms, nhưng mỗi nhịp thời gian trong Win mặc định là 15.6ms.

đọc thêm: https://randomascii.wordpress.com/2013/04/02/sleep-variation-investigated/

6 Likes

Nếu muốn dừng trong lúc nó chạy thì phải làm sao nhỉ !!!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?