From 3dab4e2b7cec2d7f1a09d64cd11f00445fd9e5a0 Mon Sep 17 00:00:00 2001 From: Max Ipatov Date: Sun, 28 Sep 2025 21:13:37 +0300 Subject: [PATCH 1/7] Create braces checker --- src/29sep25/braces.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/29sep25/braces.c diff --git a/src/29sep25/braces.c b/src/29sep25/braces.c new file mode 100644 index 0000000..90b2772 --- /dev/null +++ b/src/29sep25/braces.c @@ -0,0 +1,23 @@ +#include + +int check_str(char string[99]) +{ + int balance = 0; + for (int i = 0; i < 99; i++) { + if (string[i] == '(') + balance += 1; + else if (string[i] == ')') + balance -= 1; + if (balance < 0) + return 0; + } + return balance == 0; +} + +int main(void) +{ + char string[99]; + scanf("%s", string); + int correct = check_str(string); + printf("%d\n", correct); +} \ No newline at end of file From df227e70229a0d70f8c0625dc108bfdbf483bfc6 Mon Sep 17 00:00:00 2001 From: Max Ipatov Date: Sun, 28 Sep 2025 21:48:39 +0300 Subject: [PATCH 2/7] Return 0 in main --- src/29sep25/braces.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/29sep25/braces.c b/src/29sep25/braces.c index 90b2772..716375b 100644 --- a/src/29sep25/braces.c +++ b/src/29sep25/braces.c @@ -20,4 +20,5 @@ int main(void) scanf("%s", string); int correct = check_str(string); printf("%d\n", correct); + return 0; } \ No newline at end of file From eed415f76f22f76f6bf61184b853b8b534078d6b Mon Sep 17 00:00:00 2001 From: Max Ipatov Date: Tue, 30 Sep 2025 00:00:11 +0300 Subject: [PATCH 3/7] Create function that counts how many substrings in string --- src/29sep25/count.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/29sep25/count.c diff --git a/src/29sep25/count.c b/src/29sep25/count.c new file mode 100644 index 0000000..1c218ee --- /dev/null +++ b/src/29sep25/count.c @@ -0,0 +1,38 @@ +#include +#include + +int count(char str[100], char str1[100]) +{ + int size = strlen(str); + int size1 = strlen(str1); + int number_of_substrings = 0; + + if (size == 0 || size1 == 0) + return 0; + + for (int start = 0; start <= size - size1; start++) { + /* если элемент совпал, продожаем считать, иначе ищем следующий стартовы элемент */ + int coincidences = 0; + for (int current = 0; current < size1; current++) { + if (str1[current] == str[start + current]) + coincidences += 1; + else + break; + } + + /* если все элементы подстроки есть, то добавляем одно вхождение */ + if (coincidences == size1) + number_of_substrings += 1; + } + + return number_of_substrings; +} + +int main() +{ + char string[100] = "abcabc"; + char string1[100] = "ab"; + int result = count(string, string1); + printf("Количество вхождений %d\n", result); + return 0; +} \ No newline at end of file From 12c694cace443341fac4400f8a98a29a7d8dc629 Mon Sep 17 00:00:00 2001 From: Max Ipatov Date: Tue, 30 Sep 2025 22:15:00 +0300 Subject: [PATCH 4/7] Create programm that count zero elements --- src/29sep25/zero_elements.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/29sep25/zero_elements.c diff --git a/src/29sep25/zero_elements.c b/src/29sep25/zero_elements.c new file mode 100644 index 0000000..24ee07b --- /dev/null +++ b/src/29sep25/zero_elements.c @@ -0,0 +1,36 @@ +#include + +int count_zero_elements(int arr[], int size) +{ + int count = 0; + + for (int i = 0; i < size; i++) { + if (arr[i] == 0) + count++; + } + + return count; +} + +/* в C приходится выводить массив по одному элементу */ +void print_array(int arr[], int size) +{ + printf("Массив: ["); + for (int i = 0; i < size; i++) { + printf("%d", arr[i]); + if (i < size - 1) + printf(", "); + } + printf("]\n"); +} + +int main() +{ + int arr[] = {1, 0, 3, 0, 5, 0, 7}; + int size = sizeof(arr) / sizeof(arr[0]); + print_array(arr, size); + int zeros = count_zero_elements(arr, size); + printf("Количество нулевых элементов: %d\n", zeros); + + return 0; +} From 68361ba72220c80130cc9a10230a1ed46b787807 Mon Sep 17 00:00:00 2001 From: Max Ipatov Date: Wed, 22 Oct 2025 21:51:38 +0300 Subject: [PATCH 5/7] Varible length of string --- src/29sep25/braces.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/29sep25/braces.c b/src/29sep25/braces.c index 716375b..7b59271 100644 --- a/src/29sep25/braces.c +++ b/src/29sep25/braces.c @@ -1,9 +1,12 @@ #include +#include +#include -int check_str(char string[99]) +int checkStr(char* string) { int balance = 0; - for (int i = 0; i < 99; i++) { + int len = strlen(string); + for (int i = 0; i < len; i++) { if (string[i] == '(') balance += 1; else if (string[i] == ')') @@ -16,9 +19,27 @@ int check_str(char string[99]) int main(void) { - char string[99]; - scanf("%s", string); - int correct = check_str(string); + char* string = NULL; + int capacity = 10; + int size = 0; + int c; + + string = malloc(capacity); + + printf("Введите строку: "); + + while ((c = getchar()) != '\n') { + if (size >= capacity - 1) { + capacity *= 2; + char* temp = realloc(string, capacity); + string = temp; + } + string[size++] = c; + } + string[size] = '\0'; + + int correct = checkStr(string); printf("%d\n", correct); + return 0; } \ No newline at end of file From 7bb5ac5af0cef61529a8fe99a50ae33a08d62a8e Mon Sep 17 00:00:00 2001 From: Max Ipatov Date: Wed, 22 Oct 2025 21:57:48 +0300 Subject: [PATCH 6/7] Bool type in checkStr --- src/29sep25/braces.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/29sep25/braces.c b/src/29sep25/braces.c index 7b59271..e4640ba 100644 --- a/src/29sep25/braces.c +++ b/src/29sep25/braces.c @@ -1,6 +1,7 @@ #include #include #include +#include int checkStr(char* string) { @@ -13,8 +14,11 @@ int checkStr(char* string) balance -= 1; if (balance < 0) return 0; - } - return balance == 0; + }; + if (balance == 0) + return true; + else + return false; } int main(void) @@ -38,8 +42,8 @@ int main(void) } string[size] = '\0'; - int correct = checkStr(string); - printf("%d\n", correct); + bool correct = checkStr(string); + printf("%s\n", correct ? "true" : "false"); return 0; } \ No newline at end of file From 5d444e67c93500eb720dd0ff878d37281e584630 Mon Sep 17 00:00:00 2001 From: Max Ipatov Date: Wed, 22 Oct 2025 23:35:11 +0300 Subject: [PATCH 7/7] Remove char limit --- src/29sep25/count.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/29sep25/count.c b/src/29sep25/count.c index 1c218ee..d1a26ef 100644 --- a/src/29sep25/count.c +++ b/src/29sep25/count.c @@ -1,7 +1,7 @@ #include #include -int count(char str[100], char str1[100]) +int count(char *str, char *str1) { int size = strlen(str); int size1 = strlen(str1); @@ -30,8 +30,8 @@ int count(char str[100], char str1[100]) int main() { - char string[100] = "abcabc"; - char string1[100] = "ab"; + char string[7] = "abcabc"; + char string1[3] = "ab"; int result = count(string, string1); printf("Количество вхождений %d\n", result); return 0;