Hiển thị kết quả từ 1 đến 4 / 4
Chủ đề: giúp minh voi các cao thủ ơi
-
01-08-2002 09:00 #1
giúp minh voi các cao thủ ơi
lúc này mình còn đang học C++ nhưng vừa rồi mình viết chương trình nhỏ xíu nhưng gặp lỗi là không hiểu tại sao khi mình dùng hàm gettime (dos.h) thi khi mình so thời gian
struct time t;
........................
gettime(&t);
tgqk= (((t.ti_hur*60)+t.ti_min*60)+t.ti_sec)*100;
while (1)
{
gettime(&t);
tght= (((t.ti_hur*60)+t.ti_min*60)+t.ti_sec)*100;
if(tght-tgqk>=consố)
{
.................
tgqk= tght;
};
nhưng mà nếu như consố = 0 thì nó chạy rất nhanh ở đây (ok) nếu consố lớn hơn 0 thì bấc kỳ giá trị nào nó cũng chạy với khoảng daley nhưng nhau
-
01-08-2002 14:47 #2
Quả thật là tôi cũng chưa từng gặp phải vấn đề như vậy, cũng có thể là đoạn chương trình của bạn chạy vượt quá khoảng thời gian bạn quy định chăng ? Hoặc là kiểu số lưu trữ của bạn không phù hợp với giá trị time chẳng hạn, hãy thử kiểm tra lại bằng cách lưu các section time lại xem chúng có liên tiếp hay không, còn nếu không được thì để tôi kiểm chứng lại đã, hì hì.
-
04-08-2002 11:52 #3
Mình chưa thử, nhưng phân tích như sau:
Khi Gettime được gọi, thì tgqk được gán giá trị thời hiện tại.
Sau đó tght được gán giá trị thời gian tiếp theo.
đương nhiên tght-tgqk (gọi là Hiệu) luôn lớn hơn 0.
Nhưng nếu bạn gán giá trị cho con số lớn hơn Hiệu thì đoạn lệnh nằm trong If {....} không có tác dụng.Nợ Tình Chưa Trả Cho Ai
Chết Xuống Huyền Đài, Tình Vẫn Còn Nguyên.
-
30-08-2002 09:19 #4
Re: giúp minh voi các cao thủ ơi
struct time t;
........................
gettime(&t);
tgqk= (((t.ti_hur*60)+t.ti_min*60)+t.ti_sec)*100;
while (1)
{
gettime(&t);
tght= (((t.ti_hur*60)+t.ti_min*60)+t.ti_sec)*100;
if(tght-tgqk>=consố)
{
.................
tgqk= tght;
};
Cẩn thận một tí bạn ơi
Không biết đoạn code trên bạn nhập có chính xác hay như chương trình của bạn không. Riêng tôi thấy dường như bạn đã thiếu một dấu () rồi đấy. Theo bạn thì biến tght sẽ chứa phần trăm giây phải không, nếu vậy thì biểu thức trên đã sai rồi đấy, hãy sửa lại như thế này thử xem:
tght= ((((t.ti_hur*60)+t.ti_min)*60)+t.ti_sec)*100;
Có phải bạn định viết lại hàm delay phải không. Chúc bạn thành công nhé!Được sửa bởi xp2002_ lúc 09:21 ngày 30-08-2002


Quote
Bookmarks