Ваш код поддельный. ; -)
Обычный подход здесь заключается в создании массива 10 int
с, по одному для каждой цифры, и подсчете вхождений каждой цифры в предоставленный пользователем номер.
Существует идиоматический метод получения цифр числа num
по одной: используйте num % 10
для получения последней цифры и num / 10
для получения номера без последней цифры. Тогда ваша программа может выглядеть примерно так:
int dcount[10] = {0}; // 10 ints, all initialized to 0
scanf("%d", &num);
while(num) {
dcount[num % 10]++; // increment dcount[i], where i is the last digit of num
num /= 10; // "remove" last digit from num
}
for (int i = 0; i < sizeof(dcount)/sizeof(dcount[0]); i++)
printf("%d occured %d times\n", i, dcount[i]);
Я не тестировал приведенный выше код, поэтому возможны некоторые незначительные недостатки. Однако общий принцип должен быть ясен.
Надеюсь, это поможет.