Commit 448afb5b authored by Kevin Lyda's avatar Kevin Lyda 💬
Browse files

Provides average stats on completion.

parent 3b4b04c3
Loading
Loading
Loading
Loading
+23 −9
Original line number Diff line number Diff line
@@ -51,11 +51,25 @@ end_timer(timer_t *timer) {
  return delta;
}

char *
humanize_usec(long int usec) {
  static char buf[40];
  if (usec < 1000) {
    sprintf(buf, "%ldus", usec);
  } else if (usec < 1000000) {
    sprintf(buf, "%.1fms", usec / 1000.0);
  } else {
    sprintf(buf, "%.2fs", usec / 1000000.0);
  }

  return buf;
}

int
main(int argc, char *argv[]) {
  int guess, number;
  int guess, number, iterations = 0, correct = 0;
  timer_t timer;
  long int delta;
  long int delta, delta_total = 0;

  srand(time(NULL));

@@ -66,19 +80,19 @@ main(int argc, char *argv[]) {
    guess = read_number();
    delta = end_timer(&timer);
    if (guess == 0) {
      printf("Got %d correct out of %d.\n", correct, iterations);
      printf("Average time to answer was %s\n",
          humanize_usec(delta_total / iterations));
      exit(0);
    }
    iterations++;
    delta_total += delta;
    if (guess == number) {
      correct++;
      printf("Correct.\n");
    } 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);
    }
    printf("Took %s\n", humanize_usec(delta));
  }
}