Loading cube-test.c +33 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <sys/time.h> int random_two_digit_number() { Loading @@ -29,16 +30,41 @@ read_number() { return atoi(buf); } typedef struct timer_struct { struct timeval then; } timer_t; void start_timer(timer_t *timer) { gettimeofday(&timer->then, NULL); } long int end_timer(timer_t *timer) { struct timeval now; long int delta; gettimeofday(&now, NULL); delta = (now.tv_sec - timer->then.tv_sec) * 1000000; delta += now.tv_usec - timer->then.tv_usec; return delta; } int main(int argc, char *argv[]) { int guess, number; timer_t timer; long int delta; srand(time(NULL)); while (1) { number = random_two_digit_number(); printf("Number is %d. Cube root (0 to exit)? ", cube(number)); start_timer(&timer); guess = read_number(); delta = end_timer(&timer); if (guess == 0) { exit(0); } Loading @@ -47,5 +73,12 @@ main(int argc, char *argv[]) { } else { printf("Not correct. Number was %d.\n", number); } if (delta < 1000) { printf("Took %ldus\n", delta); } else if (delta < 1000000) { printf("Took %.1fms\n", delta / 1000.0); } else { printf("Took %.2fs\n", delta / 1000000.0); } } } Loading
cube-test.c +33 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <sys/time.h> int random_two_digit_number() { Loading @@ -29,16 +30,41 @@ read_number() { return atoi(buf); } typedef struct timer_struct { struct timeval then; } timer_t; void start_timer(timer_t *timer) { gettimeofday(&timer->then, NULL); } long int end_timer(timer_t *timer) { struct timeval now; long int delta; gettimeofday(&now, NULL); delta = (now.tv_sec - timer->then.tv_sec) * 1000000; delta += now.tv_usec - timer->then.tv_usec; return delta; } int main(int argc, char *argv[]) { int guess, number; timer_t timer; long int delta; srand(time(NULL)); while (1) { number = random_two_digit_number(); printf("Number is %d. Cube root (0 to exit)? ", cube(number)); start_timer(&timer); guess = read_number(); delta = end_timer(&timer); if (guess == 0) { exit(0); } Loading @@ -47,5 +73,12 @@ main(int argc, char *argv[]) { } else { printf("Not correct. Number was %d.\n", number); } if (delta < 1000) { printf("Took %ldus\n", delta); } else if (delta < 1000000) { printf("Took %.1fms\n", delta / 1000.0); } else { printf("Took %.2fs\n", delta / 1000000.0); } } }