Ho difficoltà a capire come questo codice possa scrivere quante volte è ripetuta una cifra nel numero immesso:

codice:
int main()
{
  int digit_count[10] = {0};
  int digit;
  long n;

  printf("Enter a number: ");
  scanf("%ld", &n);

  while (n > 0) {
    digit = n % 10;
	n /= 10;
    digit_count[digit]++;    
  }

  printf ("Digit:      ");
  for (digit = 0; digit <= 9; digit++)
    printf("%3d", digit);
  printf("\nOccurrences:");
  for (digit = 0; digit <= 9; digit++)
    printf("%3d", digit_count[digit]);
  printf("\n");

  return 0;
}
la parte finale proprio non la capisco.se immetto 266,quando stampo il valore,digit[0] dovrebbe valere 6,digit[1] 6 e digit[2] 2.invece no.qualcuno sà spiegarmi esattamente il passaggio finale?grazie