Conversation
WoWaster
left a comment
There was a problem hiding this comment.
Настройте, пожалуйста, форматер. Ну вот у if'ов точно скобочки не там, где нужно стоят.
balance_stap.c
Outdated
| // коэф для проверки вложености скобок во время пробежки по строке(если коэф меньше 0, вложенность нарушена) | ||
| // открывающая скобка имеет коэф +1 | ||
| // закрывающая скобка имеет коэф -1 | ||
| int ratio = 0; |
There was a problem hiding this comment.
Ну и ratio это традиционно "отношение" в смысле дробей (7/9 например), здесь скорее счётчик
count_zero.c
Outdated
|
|
||
| for (int i = 0; i < len; i++) | ||
| { | ||
| array[i] = rand() % 10; |
There was a problem hiding this comment.
Если уж вызываете rand, то не забывайте его инициализировать. А то вдруг ваш код работает только на одном входе.
occur_str.c
Outdated
| #include <stdlib.h> | ||
|
|
||
| // функция для создания подстроки из строки по индексам | ||
| char* cross(char* str, int indStart, int indFinish){ |
There was a problem hiding this comment.
Название вообще не несёт смысла.
occur_str.c
Outdated
| // длина подстроки с учетом нулевого элемента | ||
| int len = indFinish - indStart + 1; | ||
| // выделение памяти | ||
| char *crossStr = (char *)malloc((len) * sizeof(char)); |
There was a problem hiding this comment.
Поиск подстроки и так не дешевая операция. Зачем ещё и дополнительную память выделять?
occur_str.c
Outdated
| for(int i = 0; i < lenStr - lenStr1 + 1; i++) | ||
| { | ||
| char* str2 = cross(str, i, i + lenStr1); | ||
| if (strcmp(str1, str2) == 0) | ||
| { | ||
| count++; | ||
| } | ||
| // освобождаем память | ||
| free(str2); | ||
| } |
There was a problem hiding this comment.
Можно СИИИИЛЬНО проще, особенно, если Вы уже знаете (судя по strcspn() выше) про string.h, хотя можно и без него. Но точно можно без выделения памяти.
|
Кстати, раз уж у Вас тут оказались файлы из другой ветки, то скорее всего, при вливании, Вы и из |
WoWaster
left a comment
There was a problem hiding this comment.
И жмите Resolve conversation там, где исправили.
balance_stap.c
Outdated
| } | ||
|
|
||
| // если после пробежки по строке коэф неравен 0, значит, количество открывающих и закрывающих скобок разное | ||
| if (count == 0 && flag) { |
There was a problem hiding this comment.
Правда ли в этом месте программы flag == (count == 0)? Да! Вам не нужен flag! Избавьтесь от него
balance_stap.c
Outdated
| char str[1000]; | ||
| printf("Введите строку: "); | ||
| fgets(str, sizeof(str), stdin); | ||
| balance(str); |
There was a problem hiding this comment.
Ну, почти. Пусть balance возвращает bool, а Вы уже в main смотрите, что пришло и печатайте.
balance_stap.c
Outdated
| count++; | ||
|
|
||
| } else if (str[i] == ')') { | ||
| count -= 1; |
There was a problem hiding this comment.
Раз уж на то пошло, можно и так
| count -= 1; | |
| count--; |
| if (count == 0) { | ||
| return true; | ||
| } else { | ||
| return false; | ||
| } |
There was a problem hiding this comment.
| if (count == 0) { | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| return count == 0; |
Вообще экивалентно этому. Запомните и не пишите так больше.
Дз до 30.09