gpt4 book ai didi

c - 查找 C 代码段的运行时间

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

下面的代码应该找到 for 循环的运行时间(以秒为单位)。查看其他资源,这应该可以解决问题,在 for 循环运行后从 clock() 中减去一个初始的 clock() 。知道为什么代码不能按编写的方式工作吗?

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

//prototypes
int rfact(int n);
int temp = 0;

main()
{
int n = 0;
int i = 0;
double result = 0.0;
clock_t t;
printf("Enter a value for n: ");
scanf("%i", &n);

printf("n=%i\n", n);

//get current time
t = clock();

//process factorial 2 million times
for(i=0; i<2000000; i++)
{
rfact(n);
}

printf("n=%i\n", n);

//get total time spent in the loop
result = (double)((clock() - t)/CLOCKS_PER_SEC);

//print result
printf("runtime=%d\n", result);
}

//factorial calculation
int rfact(int n)
{

if (n<=0)
{
return 1;
}
return n * rfact(n-1);
}

最佳答案

result = (double)((clock() - t)/CLOCKS_PER_SEC);

这应该是:

result = ((double)(clock() - t))/CLOCKS_PER_SEC;

否则,您将进行整数除法并将结果转换为 double ,这不是您想要的。

另外:

printf("runtime=%d\n", result);

应该是:

printf("runtime=%f\n", result);

关于c - 查找 C 代码段的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15058614/

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