/**
* @file main.c
* @author Зайченко Д.І., гр. 515і
* @date 04 квітня 2023
* @brief Лабораторна робота No 3
*
* Використання масивів. Завдання 1
*/
#include <stdio.h>
#include <locale.h>
#include <limits.h>
int clean_stdin();
void check_repeated_digits(long long n, int digit_seen[]);
void output(int digit_seen[]);
int main() {
long long n;
int digit_seen[10] = { 0 };
char c;
setlocale(LC_ALL, "Ukr");
printf("Введiть цiле число максимум з 18 цифр\n");
printf("iнакше програма виконається з непередбачуваним результатом\n");
//цикл для перевірки коректності введення
do {
printf("Введiть число: ");
} while
(((scanf("%lld%c", &n, &c) != 2 || c != '\n') && clean_stdin()));
check_repeated_digits(n,digit_seen);
output(digit_seen);
return 0;
}
//функція перевірки цифр на повторення
void check_repeated_digits(long long n, int digit_seen[]) {
if (n < 0)
n *= -1;
//тимчасова змінна яка містить цифру
int digit;
//цикл перевірки цифр на повторення
while (n > 0) {
digit = n % 10;
digit_seen[digit] += 1;
n /= 10;
}
}
//функція виведення інформації про повторення
void output(int digit_seen[]) {
int check = 1;
for (int i = 0; i < 10; i++) {
if (digit_seen[i] > 1) {
printf("Цифра %d повторюється %d разiв\n", i, digit_seen[i]);
check = 0;
}
}
if (check)
printf("В цьому числi цифри не повторюються");
}
int clean_stdin() {
while (getchar() != '\n');
return 1;
}