/**
* @file main.c
* @author Нездоймишапка А.О., гр. 515б
* @date 28 лютого 2024
* @brief Лабораторна робота № 3, варіант 15
*
* Використання масивів. Завдання 1
*/
#include "digit_repetition.h"
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "Ukr");
long number;
int digit_count[10] = { 0 };
printf("Введіть число: ");
if (scanf("%ld", &number) != 1) {
printf("Помилка вводу!\n");
return 1;
}
if (check_repeated_digits(number, digit_count)) {
print_repeated_digits(digit_count);
} else {
printf("Немає цифр, що повторюються.\n");
}
return 0;
}
/**
* @file digit_repetition.h
* @author Нездоймишапка А.О., гр. 515б
* @date 28 лютого 2024
* @brief Лабораторна робота № 3, варіант 15
*
* Використання масивів. Завдання 1
*/
#ifndef DIGIT_REPETITION_H
#define DIGIT_REPETITION_H
int check_repeated_digits(long n, int digit_count[]);
void print_repeated_digits(int digit_count[]);
#endif
/**
* @file digit_repetition.c
* @author Нездоймишапка А.О., гр. 515б
* @date 28 лютого 2024
* @brief Лабораторна робота № 3, варіант 15
*
* Використання масивів. Завдання 1
*/
#include "digit_repetition.h"
#include <stdio.h>
// Функція перевірки та підрахунку повторюваних цифр
int check_repeated_digits(long n, int digit_count[]) {
int digit_seen[10] = { 0 };
int digit;
int has_repeats = 0;
while (n > 0) {
digit = n % 10;
digit_count[digit]++;
if (digit_seen[digit]) // Якщо цю цифру вже видно
has_repeats = 1; // є повторювані цифри
digit_seen[digit] = 1;
n /= 10;
}
return has_repeats;
}
// Функція для друку повторюваних цифр і їх підрахунку
void print_repeated_digits(int digit_count[]) {
printf("Є цифри, що повторюються: ");
for (int i = 0; i < 10; i++) {
if (digit_count[i] > 1) {
printf("%d (%d рази) ", i, digit_count[i]);
}
}
printf("\n");
}