为什么else后面的数组里的数不会加1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
#include<stdbool.h>
int main(void)
{
bool digit_seen[10] = { false };
int digit,i=0;
long int n;

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

    while (n >0){
        digit = n % 10;
        if (!digit_seen[digit]){
            digit_seen[digit]++;
            n /= 10;
        }else{ digit_seen[digit]++;
        n/=10;
    }}
    printf("Digit:\t\t");
    for (int x = 0; x <= 9; x++)
        printf("%3d",x);
    printf("\nOccurrences:\t");
    for (int i = 0; i <= 9; i++)
        printf("%3d", digit_seen[i]);
    system("pause");
    return 0;

}

img