Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
bf08fb7
Баланс скобок
Andrew-Kochanov Sep 30, 2025
c40c590
Количество нулей
Andrew-Kochanov Sep 30, 2025
f1671c1
Поиск подстрок
Andrew-Kochanov Sep 30, 2025
47ed601
Перестановка отрезков массива без сортировки
Andrew-Kochanov Oct 4, 2025
e59b891
Счастливые билетики
Andrew-Kochanov Oct 4, 2025
12ccda1
Формула за 2 умножения
Andrew-Kochanov Oct 4, 2025
b79c0b2
Неполное частное для целых чисел
Andrew-Kochanov Oct 4, 2025
edfc850
Исполняемый файл для formula_for_2_multi
Andrew-Kochanov Oct 4, 2025
0a4cbeb
Исполняемый файл для incom_priv
Andrew-Kochanov Oct 4, 2025
b7d7087
Исполняемый файл для lucky_tick
Andrew-Kochanov Oct 4, 2025
dbb4ebf
Исполняемый файл для rerran_segm
Andrew-Kochanov Oct 4, 2025
ef220b5
Подсчет нулей в массиве
Andrew-Kochanov Oct 4, 2025
dc49d44
Количество подстрок в строке
Andrew-Kochanov Oct 6, 2025
01f694d
Добавил в программы комментарии
Andrew-Kochanov Oct 7, 2025
95f7454
Удалил файлы с другой ветки
Andrew-Kochanov Oct 7, 2025
2f1e892
Исправил неточности
Andrew-Kochanov Oct 15, 2025
631aee3
Исправил все недочеты
Andrew-Kochanov Dec 20, 2025
f7b751b
Переместил всё в папку
Andrew-Kochanov Dec 22, 2025
bb3da34
Сделал cmake
Andrew-Kochanov Dec 22, 2025
98495b1
Добавил папку hw3
Andrew-Kochanov Dec 22, 2025
ae2fcb8
Сделал, чтоб функция была bool, а не void
Andrew-Kochanov Dec 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions hw3/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
cmake_minimum_required(VERSION 3.25)

project(hw3 C)

add_executable(balance_stap balance_stap.c)

add_executable(count_zero count_zero.c)

add_executable(occur_str occur_str.c)
40 changes: 40 additions & 0 deletions hw3/balance_stap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#include <stdbool.h>
#include <stdio.h>
#include <string.h>

bool balance(char* str)
{
// коэф для проверки вложености скобок во время пробежки по строке(если коэф меньше 0, вложенность нарушена)
// открывающая скобка имеет коэф +1
// закрывающая скобка имеет коэф -1
int count = 0;
for (int i = 0; i < strlen(str); i++) {
if (str[i] == '(') {
count++;

} else if (str[i] == ')') {
count--;
}
}

// если после пробежки по строке коэф неравен 0, значит, количество открывающих и закрывающих скобок разное
if (count == 0) {
return true;
} else {
return false;
}
}

int main(int argc, char** argv)
{
char str[1000];
printf("Введите строку: ");
fgets(str, sizeof(str), stdin);
if (balance(str)) {
printf("Баланс есть");
} else {
printf("Баланса нет");
}

return 0;
}
33 changes: 33 additions & 0 deletions hw3/count_zero.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include <stdio.h>
#include <stdlib.h>

int countZero(int* array, int lenght)
{
int count = 0;

// проверка на нули и подсчет количества
for (int i = 0; i < lenght; i++) {
if (array[i] == 0) {
count++;
}
}
return count;
}

int main(int argc, char** argv)
{
// создание массива с рандомными числами
int len = 20;
int* array = (int*)malloc(len * sizeof(int));

for (int i = 0; i < len; i++) {
int randNumber = rand() % 10;
array[i] = randNumber;
printf("%d ", randNumber);
}
printf("\n");

printf("Количество нулей в массиве: %d\n", countZero(array, len));
free(array);
return 0;
}
42 changes: 42 additions & 0 deletions hw3/occur_str.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#include <stdbool.h>
#include <stdio.h>
#include <string.h>

// функция для создания подстроки из строки по индексам
int countSubstring(char* str, char* str1)
{
int count = 0;

int lenStr = strlen(str);
int lenStr1 = strlen(str1);

for (int indStr = 0; indStr < lenStr - lenStr1; indStr++) {
bool flag = true;
for (int indStr1 = 0; indStr1 < lenStr1; indStr1++) {

if (str[indStr + indStr1] != str1[indStr1]) {
flag = false;
break;
}
}

if (flag) {
count++;
}
}
return count;
}

int main(int argc, char** argv)
{
char str[1000];
printf("Введите строку: ");
fgets(str, sizeof(str), stdin);
char str1[1000];
printf("Введите подстроку: ");
fgets(str1, sizeof(str1), stdin);
str1[strcspn(str1, "\n")] = '\0'; // меняем знак переноса строки на нулевой

printf("Количество подстрок: %d\n", countSubstring(str, str1));
return 0;
}