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

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

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

Завтра нужно сдавать, помогите пожалуйста! Нужна программа, проверяющая расстановку круглых скобок обязательно с помощью стека. Я написал что был горазд, однако программа, как ни бьюсь, полна ошибок. Все, что сам разумел - исправил, теперь только на вас надежда. Результат получаю, естественно, некорректный. Помогите, подскажите, что и как исправить, чтобы она делала правильные расчеты? PS: пользователь линух (про библиотеки).
#include <stdio.h>
#include <locale.h>
#include <string.h>
#define N 100

void push(int top, int i, char stack[], char str[])
    {   stack[top]=str[i];
        top++;
    }
        
void pop(int top)
    {   top--;
    }
    
int main()
{
    int i, l, top=0;
    char stack[N];
    char str[] = "";
    
    setlocale(LC_ALL, "russian_russia.1251");
    
    printf("Программа проверяет правильность расстановки круглых скобок.\n");
    printf("Введите необходимое выражение (до 50 символов):");
    
    fgets(str, 50, stdin);          
    puts(str);
    l = strlen(str);                                    // проверка длинны строки
        if (l <= 2)                                     // т.к. длинна равна количеству сиволов +1
        {   printf("Слишком короткое выражение!\n");
        }
        
    for (i=0; str[i]!='\0'; i++)
    {   if (str[i] == '(')
        {   push(top, i, stack, str);
        }
        
        if (str[i] == ')')
        {   if (top==0)
            {   printf("Ошибка при расстановке скобок!\n");
            }
            
            else 
            {   pop(top);
            }
        }
    }
    
        if (top == 0)
 {
    printf("\n Все верно!\n");
}
}
Извините, последний if запилил только что
неужели никто не поможет?

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

textual
Листинг программы
static top;

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


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

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

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