#include <stdio.h>
void print_digit_count(char number[])
{
int cnt[10] = {0};
while (number > 0) {
int d = number % 10;
cnt[d]++;
number = number / 10;
}
for (int i = 0; i < 10; i++) {
if (cnt[i] > 0) {
printf("%d %d\n", i, cnt[i]);
}
}
}
Этот код пытается подсчитать количество каждой цифры в числе, но работает только с целыми числами, а принимает строку.
- В функции `print_digit_count` параметр `number` объявлен как массив символов (`char number[]`), но внутри функции вы обращаетесь к нему как к целому числу (операции `%` и `/`). Массив символов и целое число — это разные типы данных, и так делать нельзя.
- Чтобы получить цифры из строки, нужно пройти по каждому символу строки (например, с помощью цикла по индексу) и преобразовать символ цифры в число, вычтя символ `'0'`.