在下面的程序中,我想测量输入时间,即用户输入数组变量所花费的时间:
#include <stdio.h>
#include <time.h>
int main()
{
int i, array[10];
double user_input_time;
clock_t input_start, input_end;
input_start = clock();
for (i = 0; i < 10; i++)
{
scanf("%d", &array[i]);
}
input_end = clock();
user_input_time = ((double)(input_end - input_start)) / CLOCKS_PER_SEC;
printf("User Input Time : %f\n", user_input_time);
return 0;
}
上面,我得到的是处理器时间,而不是用户输入数组的所有 10 个变量所花费的输入时间。
拜托,有人可以帮我这样做吗。
最佳答案
包括:time.h
使用:
int main()
{
time_t start = time(NULL);
//Do your operations here
printf("%.2f\n", (double)(time(NULL) - start));
return 0;
}
注意 - 我们可以使用clock_gettime
以获得更精确的结果 - link
使用clock_gettime
int main () {
struct timespec start, finish;
clock_gettime(CLOCK_REALTIME, &start);
// do your operations here
clock_gettime(CLOCK_REALTIME, &finish);
long seconds = finish.tv_sec - start.tv_sec;
long ns = finish.tv_nsec - start.tv_nsec;
if (start.tv_nsec > finish.tv_nsec) { // clock underflow
--seconds;
ns += 1000000000;
}
printf("seconds without ns: %ld\n", seconds);
printf("nanoseconds: %ld\n", ns);
printf("total seconds: %e\n", (double)seconds + (double)ns/(double)1000000000);
}
关于c - 如何测量 C 程序中的 scanf 时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813363/