Проверить текст на несоответствие числа открывающих и закрывающих круглых скобок - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан текстовый файл f, содержащий программу на языке Си. Проверить эту программу на несоответствие числа открывающих и закрывающих круглых скобок: Когда оператор программы занимает не более одной строки файла f Когда оператор программы может занимать произвольное число строк файла Если кто-нибудь, что-нибудь знает, то прошу написать, может быть есть какие то, идеи, не могу даже понять саму суть

Решение задачи: «Проверить текст на несоответствие числа открывающих и закрывающих круглых скобок»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main() {
    const char CFile[] = "program.c";
    FILE* f = fopen(CFile, "r");
    int bracket = 0;
    char ch;
 
    if (f == NULL) {
        perror(CFile);
        return EXIT_FAILURE;
    }
 
    while ((0 <= bracket) && ((ch = fgetc(f)) != EOF)) {
        switch (ch) {
            case '(':
                bracket++;
                break;
            case ')':
                bracket--;
                break;
        }
    }
 
    fclose(f);
 
    printf("%s\n", (bracket == 0) ? "Ok" : "Error");
 
    return EXIT_SUCCESS;
}

Объяснение кода листинга программы

В этом коде проверяется корректность текста на наличие парных скобок.

  1. Первые 4 строки определяют файл, который нужно проверить, и открывают его для чтения.
  2. Следующая строка инициализирует переменную bracket = 0, которая отслеживает количество открытых скобок.
  3. В цикле while происходит чтение файла посимвольно.
  4. В операторе switch проверяется каждый символ:
    • Если символ '(', то переменная bracket увеличивается на 1.
    • Если символ ')', то переменная bracket уменьшается на 1.
  5. После цикла while файл закрывается.
  6. В последней строке выводится сообщение об ошибке или о корректности текста. Код проверяет, что парные скобки в тексте открываются и закрываются в нужном порядке. Если в конце текста останется открытая скобка, то выведется сообщение об ошибке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы