【发布时间】:2021-03-17 11:39:28
【问题描述】:
我有以下代码:
#include <stdio.h>
#include <time.h>
int main(){
clock_t timerS;
int i=1, targetTime=2;
scanf("%d", &targetTime);
while(i!=0){
timerS = clock();
while ((double)((clock() - timerS) / CLOCKS_PER_SEC) < targetTime){
//do something
}
//do another thing but delayed by the given time
if(targetTime>=0.5)
targetTime-=0.02;
else i=0;
}
return 0;
}
我想要做的是有一个循环,它在(最初)输入的秒数内做某事,并在 targetTime-seconds 过去后做另一件事。
但在第一个循环之后,要更改执行这些操作的速度(在这种情况下更具体地说是 -0.02 秒)。
一个例子是在 2 秒内从用户那里获取多个用户输入,然后显示在这 2 秒内所做的所有输入。
第一个问题是
如果初始给定时间小于 1 秒(例如 0.6),则另一件事不会延迟 0.6 秒,而是立即完成。
第二个问题是
实际上与第一个类似,如果我从 targetTime 中减去 0.02 秒(在这种情况下),它会立即再次执行另一件事,而不是像我想要的那样在 targetTime-0.02 秒内执行。
我对@987654324@ 中的“时钟”和“时间”主题不熟悉,所以我想我在如何完成这些操作方面做错了。另外,请不要因为上述原因给出过于复杂的解释/解决方案。
谢谢!
【问题讨论】: