Online Compiler C

#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'`.