gpt4 book ai didi

在指定时间(以毫秒为单位)后停止的 C 函数

转载 作者:行者123 更新时间:2023-11-30 20:09:22 24 4
gpt4 key购买 nike

我为此编写了代码,但它不起作用。这是代码:

#include <stdio.h>
#include <time.h>

long timediff(clock_t t1, clock_t t2) {
long elapsed;
elapsed = ((double)t2 - t1) / CLOCKS_PER_SEC * 1000;
return elapsed;
}

int main(void) {
clock_t t1, t2;
int i;
long elapsed;

long settime = 9;
t1 = clock();
for (i=0; i > 10000000; i++) {
t2 = clock();
elapsed = timediff(t1, t2);
if (elapsed==settime)
printf("set time reached\n");
break;
}



printf("elapsed: %ld ms\n", elapsed);


return 0;
}

由于某种原因,它没有执行 if 语句。我可以看到打印到终端的唯一内容是elapsed: 4195440 ms。我需要能够指定程序在被剪切之前运行多长时间。

例如,我希望此代码运行的方式是,我将 settime 设置为 5,以便在 5 毫秒后,代码停止并将“已达到设置时间”消息打印到终端。我不确定这是否重要,但我使用的是 Ubuntu 操作系统。

最佳答案

您需要包含break if体内

                 if (elapsed==settime)
{printf("set time reached\n");
break;}

正如评论部分所建议的,您应该更改 for 循环条件,否则它不会执行。更改此for (i=0; i > 10000000; i++)for (i=0; i < 10000000; i++)

关于在指定时间(以毫秒为单位)后停止的 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52888247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com