fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int digits_count(int num, char *outputstring) {
  5. if (num < 0) {
  6. strcpy(outputstring, "Введено отрицательное число");
  7. return -1; // Ошибка
  8. }
  9.  
  10. int count[10] = {0}; // Массив для подсчёта цифр
  11. char buffer[256]; // Буфер для вывода результатов
  12. int index = 0;
  13.  
  14. // Подсчитываем цифры
  15. do {
  16. count[num % 10]++;
  17. num /= 10;
  18. } while (num > 0);
  19.  
  20. // Формируем строку вывода
  21. for (int i = 0; i < 10; i++) {
  22. if (count[i] > 0) {
  23. index += sprintf(buffer + index, "Количество %d - %d\n", i, count[i]);
  24. }
  25. }
  26.  
  27. // Копируем результат в outputstring
  28. strcpy(outputstring, buffer);
  29.  
  30. return 0; // Успех
  31. }
  32.  
  33. int main() {
  34. int x;
  35. char output[256];
  36.  
  37. printf("Введите неотрицательное число: ");
  38. scanf("%d", &x);
  39.  
  40. if (digits_count(x, output) == -1) {
  41. printf("%s\n", output);
  42. } else {
  43. printf("%s", output);
  44. }
  45.  
  46. return 0;
  47. }
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Введите неотрицательное число: Количество 0 - 1