From a36d26046ecb2e098ba5054a2c10cff60df34ff8 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 20 Sep 2025 19:27:29 +0300 Subject: [PATCH 01/15] Added happy_tickets solving --- happy_tickets.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 happy_tickets.c diff --git a/happy_tickets.c b/happy_tickets.c new file mode 100644 index 0000000..92c7ded --- /dev/null +++ b/happy_tickets.c @@ -0,0 +1,23 @@ +#include + +int main() +{ + int count = 0; + int sums[28] = { 0 }; // в массив будем заносить сколькими способами можно получить суммы от 0 до 27 + for (int a = 0; a <= 9; a++) { + + for (int b = 0; b <= 9; b++) { + for (int c = 0; c <= 9; c++) { + int sum = a + b + c; + sums[sum] += 1; // увеличиваем эл-т массива с индексом суммы на 1 + } + } + } + + for (int i = 0; i <= 27; i++) + count += sums[i] * sums[i]; // считаем сколькими разными способами можно получить одинаковые суммы первых трех и + // последних трех цифр + + printf("%d\n", count); + return 0; +} From 7a61498ff6c6506350d45591e12bfa0aef268e6d Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 20 Sep 2025 19:39:03 +0300 Subject: [PATCH 02/15] Added massive_overturn hw --- massive_overturn.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 massive_overturn.c diff --git a/massive_overturn.c b/massive_overturn.c new file mode 100644 index 0000000..35e1f5a --- /dev/null +++ b/massive_overturn.c @@ -0,0 +1,37 @@ +#include +#include + +/* Суть алгоритма такая: берется элемент, стоящий на нулевом индексе в списке, заносится в отдельную переменную. + * Далее отдельным циклом все элементы кроме нулевого смещаются на одну позицию влево. + * В конце этого цикла переменная, с элементом, который мы запомнили в начале, ставится на последнюю позицию. + * И делается это все ровно m раз. + * Для наглядности, что алгоритм работает, я заполнила его натуральными числами, упорядоченными по возрастанию. + * если у нас было [1, 2, 3, 4, 5] и m = 3 n = 2, то в конце программы список примет вид [4, 5, 1, 2, 3], + * то есть конец поменялся с началом. + */ + +int main() +{ + int n; // длина конца + int m; // длина начала + scanf("%d %d", &n, &m); // я так поняла, что пользователь сам вводит длину массива + + int list[m + n]; + for (int i = 0; i < m + n; i++) { + list[i] = i + 1; // заполняем массив значениями, чтобы в нем хранилось что-то упорядоченное, для наглядности, что нужный порядок сохраняется + } + int from_begining_to_end; + for (int i = 0; i < m; i++) { + from_begining_to_end = list[0]; + for (int j = 1; j <= m + n - 1; j++) { + list[j - 1] = list[j]; + } + list[m + n - 1] = from_begining_to_end; + } + int a = 0; + for (int i = 0; i < m + n; i++) { + printf("%d", list[i]); + } + + return 0; +} From fe702d6c3a6faebfd31ead7463eea2a44bc96e31 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 20 Sep 2025 19:43:26 +0300 Subject: [PATCH 03/15] Added incomplete_quotient task --- incomplete_quotient.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 incomplete_quotient.c diff --git a/incomplete_quotient.c b/incomplete_quotient.c new file mode 100644 index 0000000..61babcb --- /dev/null +++ b/incomplete_quotient.c @@ -0,0 +1,39 @@ +#include +#include + +int main() { + int a; + int b; + int r = 0; // сколько раз вмещается b в a + scanf("%d %d", &a, &b); + int remember_a = a; + int under_zero = 0; // флаг, чтобы понять какие значения введены + // 0 - положит + if ((a < 0 | b < 0) && !(a < 0 && b < 0)) { + under_zero = 1; // впоследствии учтем, что ответ должен быть < 0 + } + + a = abs(a); + b = abs(b); + remember_a = abs(remember_a); + + if (b == 0) { + printf("devision by zero\n"); + } + + else { + while (a - b > 0) { + a = a - b; + r += 1; + } + if (b * r + a == remember_a) { + if (under_zero == 1) { + printf("%d\n", r * (-1) - 1); + } else { + printf("%d\n", r); + } + } + } + + return 0; +} From 954599990b6add2076e55909b796649118cbb785 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 20 Sep 2025 20:32:10 +0300 Subject: [PATCH 04/15] Added Fast_polynomial_calculation.c --- Fast_polynomial_calculation.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Fast_polynomial_calculation.c diff --git a/Fast_polynomial_calculation.c b/Fast_polynomial_calculation.c new file mode 100644 index 0000000..8410d0d --- /dev/null +++ b/Fast_polynomial_calculation.c @@ -0,0 +1,13 @@ +#include +#include + +int main() +{ + int x; + int t; + scanf("%d", &x); + t = x * x; + int result = (t + x) * (t + 1) + 1; + printf("%d", result); + return 0; +} From 2fb785349e6ae0c89383b80bccc0dcd0db299128 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 20 Sep 2025 20:51:31 +0300 Subject: [PATCH 05/15] Moved all files into src dir --- src/Fast_polynomial_calculation.c | 13 +++++++++++ src/happy_tickets.c | 9 +++---- src/incomplete_quotient.c | 39 +++++++++++++++++++++++++++++++ src/massive_overturn.c | 37 +++++++++++++++++++++++++++++ 4 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 src/Fast_polynomial_calculation.c create mode 100644 src/incomplete_quotient.c create mode 100644 src/massive_overturn.c diff --git a/src/Fast_polynomial_calculation.c b/src/Fast_polynomial_calculation.c new file mode 100644 index 0000000..8410d0d --- /dev/null +++ b/src/Fast_polynomial_calculation.c @@ -0,0 +1,13 @@ +#include +#include + +int main() +{ + int x; + int t; + scanf("%d", &x); + t = x * x; + int result = (t + x) * (t + 1) + 1; + printf("%d", result); + return 0; +} diff --git a/src/happy_tickets.c b/src/happy_tickets.c index a997605..92c7ded 100644 --- a/src/happy_tickets.c +++ b/src/happy_tickets.c @@ -1,9 +1,11 @@ #include -int main() { +int main() +{ int count = 0; int sums[28] = { 0 }; // в массив будем заносить сколькими способами можно получить суммы от 0 до 27 for (int a = 0; a <= 9; a++) { + for (int b = 0; b <= 9; b++) { for (int c = 0; c <= 9; c++) { int sum = a + b + c; @@ -12,11 +14,10 @@ int main() { } } - for (int i = 0; i <= 27; i++) { + for (int i = 0; i <= 27; i++) count += sums[i] * sums[i]; // считаем сколькими разными способами можно получить одинаковые суммы первых трех и // последних трех цифр - } + printf("%d\n", count); return 0; } - diff --git a/src/incomplete_quotient.c b/src/incomplete_quotient.c new file mode 100644 index 0000000..61babcb --- /dev/null +++ b/src/incomplete_quotient.c @@ -0,0 +1,39 @@ +#include +#include + +int main() { + int a; + int b; + int r = 0; // сколько раз вмещается b в a + scanf("%d %d", &a, &b); + int remember_a = a; + int under_zero = 0; // флаг, чтобы понять какие значения введены + // 0 - положит + if ((a < 0 | b < 0) && !(a < 0 && b < 0)) { + under_zero = 1; // впоследствии учтем, что ответ должен быть < 0 + } + + a = abs(a); + b = abs(b); + remember_a = abs(remember_a); + + if (b == 0) { + printf("devision by zero\n"); + } + + else { + while (a - b > 0) { + a = a - b; + r += 1; + } + if (b * r + a == remember_a) { + if (under_zero == 1) { + printf("%d\n", r * (-1) - 1); + } else { + printf("%d\n", r); + } + } + } + + return 0; +} diff --git a/src/massive_overturn.c b/src/massive_overturn.c new file mode 100644 index 0000000..35e1f5a --- /dev/null +++ b/src/massive_overturn.c @@ -0,0 +1,37 @@ +#include +#include + +/* Суть алгоритма такая: берется элемент, стоящий на нулевом индексе в списке, заносится в отдельную переменную. + * Далее отдельным циклом все элементы кроме нулевого смещаются на одну позицию влево. + * В конце этого цикла переменная, с элементом, который мы запомнили в начале, ставится на последнюю позицию. + * И делается это все ровно m раз. + * Для наглядности, что алгоритм работает, я заполнила его натуральными числами, упорядоченными по возрастанию. + * если у нас было [1, 2, 3, 4, 5] и m = 3 n = 2, то в конце программы список примет вид [4, 5, 1, 2, 3], + * то есть конец поменялся с началом. + */ + +int main() +{ + int n; // длина конца + int m; // длина начала + scanf("%d %d", &n, &m); // я так поняла, что пользователь сам вводит длину массива + + int list[m + n]; + for (int i = 0; i < m + n; i++) { + list[i] = i + 1; // заполняем массив значениями, чтобы в нем хранилось что-то упорядоченное, для наглядности, что нужный порядок сохраняется + } + int from_begining_to_end; + for (int i = 0; i < m; i++) { + from_begining_to_end = list[0]; + for (int j = 1; j <= m + n - 1; j++) { + list[j - 1] = list[j]; + } + list[m + n - 1] = from_begining_to_end; + } + int a = 0; + for (int i = 0; i < m + n; i++) { + printf("%d", list[i]); + } + + return 0; +} From c95b8b1fab8760daba0995023e77fab2f0f3cfe9 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 20 Sep 2025 21:43:13 +0300 Subject: [PATCH 06/15] Added algorithm of finding zeros in massive --- src/Third_lesson/zeros_in_list.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/Third_lesson/zeros_in_list.c diff --git a/src/Third_lesson/zeros_in_list.c b/src/Third_lesson/zeros_in_list.c new file mode 100644 index 0000000..59a6e90 --- /dev/null +++ b/src/Third_lesson/zeros_in_list.c @@ -0,0 +1,18 @@ +#include + +int main() +{ + // пусть массив задан в программе + int list[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; + int count = 0; + size_t length = sizeof(list) / sizeof(int); + + for (int i = 0; i < length; i++) { + if (list[i] == 0) { + count += 1; + } + } + printf("%d", count); + return 0; +} + From 5d800660d749ef6ee8b52d9791120dd4333cf7ad Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 20 Sep 2025 23:31:10 +0300 Subject: [PATCH 07/15] Added one_string_in_another.c --- src/Third_lesson/one_string_in_another.c | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/Third_lesson/one_string_in_another.c diff --git a/src/Third_lesson/one_string_in_another.c b/src/Third_lesson/one_string_in_another.c new file mode 100644 index 0000000..73aa196 --- /dev/null +++ b/src/Third_lesson/one_string_in_another.c @@ -0,0 +1,30 @@ +#include +#include + +int main() +{ + char list_s[] = "hellohellhellolllhello"; + char list_s1[] = "hello"; + + size_t lenS = sizeof(list_s) / sizeof(char); + size_t lenS1 = sizeof(list_s1) / sizeof(char) - 1; // так как последний символ нулевой + + int count = 0; // счетчик вхождений + for (int i = 0; i < lenS; i++) // i - индекс того эл-та с которого будем рассматривать строку s + { + int flag = 1; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла + for (int j = 0; j < lenS1; j++) { + if (list_s[i + j] != list_s1[j]) { + flag = 0; // опа, строчки отличаются + break; // собираем вещи и уходим + } + } + if (flag == 1) // все символы совпали + { + count += 1; + } + } + printf("%d\n", count); + + return 0; +} From b598f69a2ba953e5927d61b054e82ee5073b0020 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 21 Sep 2025 12:47:41 +0300 Subject: [PATCH 08/15] Added bracket_balance.c --- src/Third_lesson/bracket_balance.c | 56 ++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/Third_lesson/bracket_balance.c diff --git a/src/Third_lesson/bracket_balance.c b/src/Third_lesson/bracket_balance.c new file mode 100644 index 0000000..07e5f83 --- /dev/null +++ b/src/Third_lesson/bracket_balance.c @@ -0,0 +1,56 @@ +#include +#include +#include + +int main() +{ + int stek[100]; // сделаем большой стек состоящий из 100 нулей + char string[100]; // строка из 100 символов + scanf("%s", string); // ввели строку (огранчение 100 символов) + + int count = 0; // счетчик того, сколько позиций занято в стеке + char str1; // здесь будут символы из строки + char str2 = '('; + char str3 = ')'; + + int everything_ok = 1; // флаг, что все скобки пока идут правильно + + for (int i = 0; i < 100; i++) // перебор символов введенной строки + { + str1 = string[i]; + + if (str1 == str2) // Ищем окрывающие скобки + { + stek[count] = 2; // пусть 2 - это открывающая скобка + count += 1; + } + + else if (str1 == str3) // если скобка закрывающаяся + { + if (stek[count - 1] == 2) // то все ок + { + stek[count - 1] = 0; + count -= 1; + // этими действиями мы убрали закрытые скобки, будто их и не было + } else { + + everything_ok = 0; + break; + } + } + } + // Если скобочная последовательность правильная, то стек в конце будет состоять только из нулей + if (everything_ok == 1 && stek[0] == 2) { + printf("Скобочная последовательность неправильная\n"); + } + + else if (everything_ok == 1) { + printf("Скобочная последовательность правильная\n"); + } + + else { + printf("Скобочная последовательность неправильная\n"); + } + + return 0; +} From 23d6683fd92a127846a3dd3e694fdc9df10f784f Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 21 Sep 2025 13:14:04 +0300 Subject: [PATCH 09/15] Reconstrusted files structure, added hw for codestyle lesson --- .../Fast_polynomial_calculation.c | 0 src/{ => CodeStyle_lesson}/happy_tickets.c | 0 .../incomplete_quotient.c | 0 src/{ => CodeStyle_lesson}/massive_overturn.c | 0 src/division_without_devision.c | 39 ------------------- src/file_to_be.c | 0 6 files changed, 39 deletions(-) rename src/{ => CodeStyle_lesson}/Fast_polynomial_calculation.c (100%) rename src/{ => CodeStyle_lesson}/happy_tickets.c (100%) rename src/{ => CodeStyle_lesson}/incomplete_quotient.c (100%) rename src/{ => CodeStyle_lesson}/massive_overturn.c (100%) delete mode 100644 src/division_without_devision.c delete mode 100644 src/file_to_be.c diff --git a/src/Fast_polynomial_calculation.c b/src/CodeStyle_lesson/Fast_polynomial_calculation.c similarity index 100% rename from src/Fast_polynomial_calculation.c rename to src/CodeStyle_lesson/Fast_polynomial_calculation.c diff --git a/src/happy_tickets.c b/src/CodeStyle_lesson/happy_tickets.c similarity index 100% rename from src/happy_tickets.c rename to src/CodeStyle_lesson/happy_tickets.c diff --git a/src/incomplete_quotient.c b/src/CodeStyle_lesson/incomplete_quotient.c similarity index 100% rename from src/incomplete_quotient.c rename to src/CodeStyle_lesson/incomplete_quotient.c diff --git a/src/massive_overturn.c b/src/CodeStyle_lesson/massive_overturn.c similarity index 100% rename from src/massive_overturn.c rename to src/CodeStyle_lesson/massive_overturn.c diff --git a/src/division_without_devision.c b/src/division_without_devision.c deleted file mode 100644 index 61babcb..0000000 --- a/src/division_without_devision.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -int main() { - int a; - int b; - int r = 0; // сколько раз вмещается b в a - scanf("%d %d", &a, &b); - int remember_a = a; - int under_zero = 0; // флаг, чтобы понять какие значения введены - // 0 - положит - if ((a < 0 | b < 0) && !(a < 0 && b < 0)) { - under_zero = 1; // впоследствии учтем, что ответ должен быть < 0 - } - - a = abs(a); - b = abs(b); - remember_a = abs(remember_a); - - if (b == 0) { - printf("devision by zero\n"); - } - - else { - while (a - b > 0) { - a = a - b; - r += 1; - } - if (b * r + a == remember_a) { - if (under_zero == 1) { - printf("%d\n", r * (-1) - 1); - } else { - printf("%d\n", r); - } - } - } - - return 0; -} diff --git a/src/file_to_be.c b/src/file_to_be.c deleted file mode 100644 index e69de29..0000000 From 54dc85bd0c1be158d019f1ca116264aad238aa93 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 21 Sep 2025 13:22:03 +0300 Subject: [PATCH 10/15] Added Compilation_process dir with hw --- src/Compilation_process/bracket_balance.c | 56 +++++++++++++++++++ .../one_string_in_another.c | 30 ++++++++++ src/Compilation_process/zeros_in_massive.c | 17 ++++++ 3 files changed, 103 insertions(+) create mode 100644 src/Compilation_process/bracket_balance.c create mode 100644 src/Compilation_process/one_string_in_another.c create mode 100644 src/Compilation_process/zeros_in_massive.c diff --git a/src/Compilation_process/bracket_balance.c b/src/Compilation_process/bracket_balance.c new file mode 100644 index 0000000..07e5f83 --- /dev/null +++ b/src/Compilation_process/bracket_balance.c @@ -0,0 +1,56 @@ +#include +#include +#include + +int main() +{ + int stek[100]; // сделаем большой стек состоящий из 100 нулей + char string[100]; // строка из 100 символов + scanf("%s", string); // ввели строку (огранчение 100 символов) + + int count = 0; // счетчик того, сколько позиций занято в стеке + char str1; // здесь будут символы из строки + char str2 = '('; + char str3 = ')'; + + int everything_ok = 1; // флаг, что все скобки пока идут правильно + + for (int i = 0; i < 100; i++) // перебор символов введенной строки + { + str1 = string[i]; + + if (str1 == str2) // Ищем окрывающие скобки + { + stek[count] = 2; // пусть 2 - это открывающая скобка + count += 1; + } + + else if (str1 == str3) // если скобка закрывающаяся + { + if (stek[count - 1] == 2) // то все ок + { + stek[count - 1] = 0; + count -= 1; + // этими действиями мы убрали закрытые скобки, будто их и не было + } else { + + everything_ok = 0; + break; + } + } + } + // Если скобочная последовательность правильная, то стек в конце будет состоять только из нулей + if (everything_ok == 1 && stek[0] == 2) { + printf("Скобочная последовательность неправильная\n"); + } + + else if (everything_ok == 1) { + printf("Скобочная последовательность правильная\n"); + } + + else { + printf("Скобочная последовательность неправильная\n"); + } + + return 0; +} diff --git a/src/Compilation_process/one_string_in_another.c b/src/Compilation_process/one_string_in_another.c new file mode 100644 index 0000000..73aa196 --- /dev/null +++ b/src/Compilation_process/one_string_in_another.c @@ -0,0 +1,30 @@ +#include +#include + +int main() +{ + char list_s[] = "hellohellhellolllhello"; + char list_s1[] = "hello"; + + size_t lenS = sizeof(list_s) / sizeof(char); + size_t lenS1 = sizeof(list_s1) / sizeof(char) - 1; // так как последний символ нулевой + + int count = 0; // счетчик вхождений + for (int i = 0; i < lenS; i++) // i - индекс того эл-та с которого будем рассматривать строку s + { + int flag = 1; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла + for (int j = 0; j < lenS1; j++) { + if (list_s[i + j] != list_s1[j]) { + flag = 0; // опа, строчки отличаются + break; // собираем вещи и уходим + } + } + if (flag == 1) // все символы совпали + { + count += 1; + } + } + printf("%d\n", count); + + return 0; +} diff --git a/src/Compilation_process/zeros_in_massive.c b/src/Compilation_process/zeros_in_massive.c new file mode 100644 index 0000000..aecded7 --- /dev/null +++ b/src/Compilation_process/zeros_in_massive.c @@ -0,0 +1,17 @@ +#include + +int main() +{ + // пусть массив задан в программе + int list[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; + int count = 0; + size_t length = sizeof(list) / sizeof(int); + + for (int i = 0; i < length; i++) { + if (list[i] == 0) { + count += 1; + } + } + printf("%d", count); + return 0; +} From 7147a19b61a540747ea38e0db22a3097833fa729 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 21 Sep 2025 13:24:14 +0300 Subject: [PATCH 11/15] Cleard the root dir --- Fast_polynomial_calculation.c | 13 ------------ happy_tickets.c | 23 --------------------- incomplete_quotient.c | 39 ----------------------------------- massive_overturn.c | 37 --------------------------------- 4 files changed, 112 deletions(-) delete mode 100644 Fast_polynomial_calculation.c delete mode 100644 happy_tickets.c delete mode 100644 incomplete_quotient.c delete mode 100644 massive_overturn.c diff --git a/Fast_polynomial_calculation.c b/Fast_polynomial_calculation.c deleted file mode 100644 index 8410d0d..0000000 --- a/Fast_polynomial_calculation.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -int main() -{ - int x; - int t; - scanf("%d", &x); - t = x * x; - int result = (t + x) * (t + 1) + 1; - printf("%d", result); - return 0; -} diff --git a/happy_tickets.c b/happy_tickets.c deleted file mode 100644 index 92c7ded..0000000 --- a/happy_tickets.c +++ /dev/null @@ -1,23 +0,0 @@ -#include - -int main() -{ - int count = 0; - int sums[28] = { 0 }; // в массив будем заносить сколькими способами можно получить суммы от 0 до 27 - for (int a = 0; a <= 9; a++) { - - for (int b = 0; b <= 9; b++) { - for (int c = 0; c <= 9; c++) { - int sum = a + b + c; - sums[sum] += 1; // увеличиваем эл-т массива с индексом суммы на 1 - } - } - } - - for (int i = 0; i <= 27; i++) - count += sums[i] * sums[i]; // считаем сколькими разными способами можно получить одинаковые суммы первых трех и - // последних трех цифр - - printf("%d\n", count); - return 0; -} diff --git a/incomplete_quotient.c b/incomplete_quotient.c deleted file mode 100644 index 61babcb..0000000 --- a/incomplete_quotient.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -int main() { - int a; - int b; - int r = 0; // сколько раз вмещается b в a - scanf("%d %d", &a, &b); - int remember_a = a; - int under_zero = 0; // флаг, чтобы понять какие значения введены - // 0 - положит - if ((a < 0 | b < 0) && !(a < 0 && b < 0)) { - under_zero = 1; // впоследствии учтем, что ответ должен быть < 0 - } - - a = abs(a); - b = abs(b); - remember_a = abs(remember_a); - - if (b == 0) { - printf("devision by zero\n"); - } - - else { - while (a - b > 0) { - a = a - b; - r += 1; - } - if (b * r + a == remember_a) { - if (under_zero == 1) { - printf("%d\n", r * (-1) - 1); - } else { - printf("%d\n", r); - } - } - } - - return 0; -} diff --git a/massive_overturn.c b/massive_overturn.c deleted file mode 100644 index 35e1f5a..0000000 --- a/massive_overturn.c +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -/* Суть алгоритма такая: берется элемент, стоящий на нулевом индексе в списке, заносится в отдельную переменную. - * Далее отдельным циклом все элементы кроме нулевого смещаются на одну позицию влево. - * В конце этого цикла переменная, с элементом, который мы запомнили в начале, ставится на последнюю позицию. - * И делается это все ровно m раз. - * Для наглядности, что алгоритм работает, я заполнила его натуральными числами, упорядоченными по возрастанию. - * если у нас было [1, 2, 3, 4, 5] и m = 3 n = 2, то в конце программы список примет вид [4, 5, 1, 2, 3], - * то есть конец поменялся с началом. - */ - -int main() -{ - int n; // длина конца - int m; // длина начала - scanf("%d %d", &n, &m); // я так поняла, что пользователь сам вводит длину массива - - int list[m + n]; - for (int i = 0; i < m + n; i++) { - list[i] = i + 1; // заполняем массив значениями, чтобы в нем хранилось что-то упорядоченное, для наглядности, что нужный порядок сохраняется - } - int from_begining_to_end; - for (int i = 0; i < m; i++) { - from_begining_to_end = list[0]; - for (int j = 1; j <= m + n - 1; j++) { - list[j - 1] = list[j]; - } - list[m + n - 1] = from_begining_to_end; - } - int a = 0; - for (int i = 0; i < m + n; i++) { - printf("%d", list[i]); - } - - return 0; -} From f61a65e7d1cb8b2c94119f06ea7770ed3f79aeec Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 21 Sep 2025 13:25:52 +0300 Subject: [PATCH 12/15] Deleted third lesson dir --- src/Third_lesson/bracket_balance.c | 56 ------------------------ src/Third_lesson/one_string_in_another.c | 30 ------------- src/Third_lesson/zeros_in_list.c | 18 -------- 3 files changed, 104 deletions(-) delete mode 100644 src/Third_lesson/bracket_balance.c delete mode 100644 src/Third_lesson/one_string_in_another.c delete mode 100644 src/Third_lesson/zeros_in_list.c diff --git a/src/Third_lesson/bracket_balance.c b/src/Third_lesson/bracket_balance.c deleted file mode 100644 index 07e5f83..0000000 --- a/src/Third_lesson/bracket_balance.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include - -int main() -{ - int stek[100]; // сделаем большой стек состоящий из 100 нулей - char string[100]; // строка из 100 символов - scanf("%s", string); // ввели строку (огранчение 100 символов) - - int count = 0; // счетчик того, сколько позиций занято в стеке - char str1; // здесь будут символы из строки - char str2 = '('; - char str3 = ')'; - - int everything_ok = 1; // флаг, что все скобки пока идут правильно - - for (int i = 0; i < 100; i++) // перебор символов введенной строки - { - str1 = string[i]; - - if (str1 == str2) // Ищем окрывающие скобки - { - stek[count] = 2; // пусть 2 - это открывающая скобка - count += 1; - } - - else if (str1 == str3) // если скобка закрывающаяся - { - if (stek[count - 1] == 2) // то все ок - { - stek[count - 1] = 0; - count -= 1; - // этими действиями мы убрали закрытые скобки, будто их и не было - } else { - - everything_ok = 0; - break; - } - } - } - // Если скобочная последовательность правильная, то стек в конце будет состоять только из нулей - if (everything_ok == 1 && stek[0] == 2) { - printf("Скобочная последовательность неправильная\n"); - } - - else if (everything_ok == 1) { - printf("Скобочная последовательность правильная\n"); - } - - else { - printf("Скобочная последовательность неправильная\n"); - } - - return 0; -} diff --git a/src/Third_lesson/one_string_in_another.c b/src/Third_lesson/one_string_in_another.c deleted file mode 100644 index 73aa196..0000000 --- a/src/Third_lesson/one_string_in_another.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -int main() -{ - char list_s[] = "hellohellhellolllhello"; - char list_s1[] = "hello"; - - size_t lenS = sizeof(list_s) / sizeof(char); - size_t lenS1 = sizeof(list_s1) / sizeof(char) - 1; // так как последний символ нулевой - - int count = 0; // счетчик вхождений - for (int i = 0; i < lenS; i++) // i - индекс того эл-та с которого будем рассматривать строку s - { - int flag = 1; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла - for (int j = 0; j < lenS1; j++) { - if (list_s[i + j] != list_s1[j]) { - flag = 0; // опа, строчки отличаются - break; // собираем вещи и уходим - } - } - if (flag == 1) // все символы совпали - { - count += 1; - } - } - printf("%d\n", count); - - return 0; -} diff --git a/src/Third_lesson/zeros_in_list.c b/src/Third_lesson/zeros_in_list.c deleted file mode 100644 index 59a6e90..0000000 --- a/src/Third_lesson/zeros_in_list.c +++ /dev/null @@ -1,18 +0,0 @@ -#include - -int main() -{ - // пусть массив задан в программе - int list[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; - int count = 0; - size_t length = sizeof(list) / sizeof(int); - - for (int i = 0; i < length; i++) { - if (list[i] == 0) { - count += 1; - } - } - printf("%d", count); - return 0; -} - From baf0a6626bd28b3de692583929bda539555d3234 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Wed, 24 Sep 2025 20:27:05 +0300 Subject: [PATCH 13/15] Corrected mistakes in massiveOverturn --- .../{massive_overturn.c => massiveOverturn.c} | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) rename src/CodeStyle_lesson/{massive_overturn.c => massiveOverturn.c} (81%) diff --git a/src/CodeStyle_lesson/massive_overturn.c b/src/CodeStyle_lesson/massiveOverturn.c similarity index 81% rename from src/CodeStyle_lesson/massive_overturn.c rename to src/CodeStyle_lesson/massiveOverturn.c index 35e1f5a..81129e2 100644 --- a/src/CodeStyle_lesson/massive_overturn.c +++ b/src/CodeStyle_lesson/massiveOverturn.c @@ -12,26 +12,32 @@ int main() { - int n; // длина конца - int m; // длина начала + int n = 0; // длина конца + int m = 0; // длина начала scanf("%d %d", &n, &m); // я так поняла, что пользователь сам вводит длину массива - int list[m + n]; + int *list = calloc(n+m, sizeof(int)); for (int i = 0; i < m + n; i++) { list[i] = i + 1; // заполняем массив значениями, чтобы в нем хранилось что-то упорядоченное, для наглядности, что нужный порядок сохраняется } - int from_begining_to_end; + int fromBeginingToEnd = 0; for (int i = 0; i < m; i++) { - from_begining_to_end = list[0]; + fromBeginingToEnd = list[0]; for (int j = 1; j <= m + n - 1; j++) { list[j - 1] = list[j]; } - list[m + n - 1] = from_begining_to_end; + list[m + n - 1] = fromBeginingToEnd; } int a = 0; for (int i = 0; i < m + n; i++) { - printf("%d", list[i]); - } + if (i == m + n - 1) { + printf("%d\n", list[i]); + } else { + printf("%d", list[i]); + } + } + free(list); return 0; } + From 74e47b015784e24b39d996a04e4e71394543873b Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Wed, 24 Sep 2025 20:32:09 +0300 Subject: [PATCH 14/15] Removed mistakes in fastPolynomialCalculation.c --- ...olynomial_calculation.c => fastPolynomialCalculation.c} | 7 +++---- src/CodeStyle_lesson/{happy_tickets.c => happyTickets.c} | 0 2 files changed, 3 insertions(+), 4 deletions(-) rename src/CodeStyle_lesson/{Fast_polynomial_calculation.c => fastPolynomialCalculation.c} (67%) rename src/CodeStyle_lesson/{happy_tickets.c => happyTickets.c} (100%) diff --git a/src/CodeStyle_lesson/Fast_polynomial_calculation.c b/src/CodeStyle_lesson/fastPolynomialCalculation.c similarity index 67% rename from src/CodeStyle_lesson/Fast_polynomial_calculation.c rename to src/CodeStyle_lesson/fastPolynomialCalculation.c index 8410d0d..7fb3892 100644 --- a/src/CodeStyle_lesson/Fast_polynomial_calculation.c +++ b/src/CodeStyle_lesson/fastPolynomialCalculation.c @@ -3,11 +3,10 @@ int main() { - int x; - int t; + int x = 0; scanf("%d", &x); - t = x * x; + int t = x * x; int result = (t + x) * (t + 1) + 1; - printf("%d", result); + printf("%d\n", result); return 0; } diff --git a/src/CodeStyle_lesson/happy_tickets.c b/src/CodeStyle_lesson/happyTickets.c similarity index 100% rename from src/CodeStyle_lesson/happy_tickets.c rename to src/CodeStyle_lesson/happyTickets.c From d22be0f6fcb6c3356364fa2d1cb8c73f08b22b3d Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Wed, 24 Sep 2025 21:42:37 +0300 Subject: [PATCH 15/15] Fixed incompliteQuotient.c --- src/CodeStyle_lesson/incompleteQuotient.c | 40 ++++++++++++++++++++++ src/CodeStyle_lesson/incomplete_quotient.c | 39 --------------------- 2 files changed, 40 insertions(+), 39 deletions(-) create mode 100644 src/CodeStyle_lesson/incompleteQuotient.c delete mode 100644 src/CodeStyle_lesson/incomplete_quotient.c diff --git a/src/CodeStyle_lesson/incompleteQuotient.c b/src/CodeStyle_lesson/incompleteQuotient.c new file mode 100644 index 0000000..eeafe85 --- /dev/null +++ b/src/CodeStyle_lesson/incompleteQuotient.c @@ -0,0 +1,40 @@ +#include +#include +#include + +int main() +{ + int a = 0; + int b = 0; + int howManyTimesBInA = 0; + scanf("%d %d", &a, &b); + + int underZero = false; // флаг, чтобы понять какие значения введены + // 0 - положит + if ((a * b) < 0) { + underZero = true; // впоследствии учтем, что ответ должен быть < 0 + } + + a = abs(a); + b = abs(b); + int rememberA = abs(a); + + if (b == 0) { + printf("devision by zero\n"); + return 1; + } + + while (a - b > 0) { + a = a - b; + howManyTimesBInA += 1; + } + if (b * howManyTimesBInA + a == rememberA) { + if (underZero == true) { + printf("%d\n", howManyTimesBInA * (-1) - 1); + } else { + printf("%d\n", howManyTimesBInA); + } + } + + return 0; +} diff --git a/src/CodeStyle_lesson/incomplete_quotient.c b/src/CodeStyle_lesson/incomplete_quotient.c deleted file mode 100644 index 61babcb..0000000 --- a/src/CodeStyle_lesson/incomplete_quotient.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -int main() { - int a; - int b; - int r = 0; // сколько раз вмещается b в a - scanf("%d %d", &a, &b); - int remember_a = a; - int under_zero = 0; // флаг, чтобы понять какие значения введены - // 0 - положит - if ((a < 0 | b < 0) && !(a < 0 && b < 0)) { - under_zero = 1; // впоследствии учтем, что ответ должен быть < 0 - } - - a = abs(a); - b = abs(b); - remember_a = abs(remember_a); - - if (b == 0) { - printf("devision by zero\n"); - } - - else { - while (a - b > 0) { - a = a - b; - r += 1; - } - if (b * r + a == remember_a) { - if (under_zero == 1) { - printf("%d\n", r * (-1) - 1); - } else { - printf("%d\n", r); - } - } - } - - return 0; -}