#include <stdio.h>
#include <locale.h>
#include "prototypes.h"
int main() {
long long n;
int digit_seen[10] = { 0 };
char c;
setlocale(LC_ALL, "Ukr");
//цикл для перевірки коректності введення
do {
printf("Введiть число: ");
} while
(((scanf_s("%lld%c", &n, &c) != 2 || c != '\n') && clean_stdin()));
check_repeated_digits(n, digit_seen);
output(digit_seen);
return 0;
}
#include "prototypes.h"
//допоміжна функція для перевірки коректності введення
int clean_stdin() {
while (getchar() != '\n');
return 1;
}
//функція перевірки цифр на повторення
void check_repeated_digits(long long n, int digit_seen[]) {
if (n < 0)
n *= -1;
//тимчасова змінна яка містить цифру
int digit;
//цикл перевірки цифр на повторення
for (n; n > 0; n /= 10) {
digit = n % 10;
digit_seen[digit] += 1;
}
}
//функція виведення інформації про повторення
void output(int digit_seen[]) {
int temp = 1;
for (int i = 0; i < 10; i++) {
if (digit_seen[i] > 1) {
printf("Цифра %d повторюється %d разiв\n", i, digit_seen[i]);
temp = 0;
}
}
if (temp)
printf("В цьому числi цифри не повторюються");
}
int clean_stdin();
void output(int digit_seen[]);
void check_repeated_digits(long long n, int digit_seen[]);
#include "pch.h"
#include "..\task1\module1.c"
TEST(POSITIVE_NUMBERS, TEST1) {
int n = 10201345;
int digit_seen[10] = { 0 };
int expected_array[10] = { 2,2,1,1,1,1,0,0,0,0 };
check_repeated_digits(n, digit_seen);
for (int i = 0; i < 10; i++) {
EXPECT_EQ(expected_array[i], digit_seen[i]);
}
}
TEST(POSITIVE_NUMBERS, TEST2) {
int n = 1021581288;
int digit_seen[10] = { 0 };
int expected_array[10] = { 1,3,2,0,0,1,0,0,3,0 };
check_repeated_digits(n, digit_seen);
for (int i = 0; i < 10; i++) {
EXPECT_EQ(expected_array[i], digit_seen[i]);
}
}
TEST(NEGATIVE_NUMBERS, TEST1) {
int n = -10201345;
int digit_seen[10] = { 0 };
int expected_array[10] = { 2,2,1,1,1,1,0,0,0,0 };
check_repeated_digits(n, digit_seen);
for (int i = 0; i < 10; i++) {
EXPECT_EQ(expected_array[i], digit_seen[i]);
}
}
TEST(NEGATIVE_NUMBERS, TEST2) {
int n = -1021581288;
int digit_seen[10] = { 0 };
int expected_array[10] = { 1,3,2,0,0,1,0,0,3,0 };
check_repeated_digits(n, digit_seen);
for (int i = 0; i < 10; i++) {
EXPECT_EQ(expected_array[i], digit_seen[i]);
}
}