Проверка правильности расстановки круглых скобок. - C (СИ)
Формулировка задачи:
Завтра нужно сдавать, помогите пожалуйста!
Нужна программа, проверяющая расстановку круглых скобок обязательно с помощью стека. Я написал что был горазд, однако программа, как ни бьюсь, полна ошибок. Все, что сам разумел - исправил, теперь только на вас надежда. Результат получаю, естественно, некорректный. Помогите, подскажите, что и как исправить, чтобы она делала правильные расчеты?
PS: пользователь линух (про библиотеки).
Извините, последний if запилил только что
#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"); } }
неужели никто не поможет?
Решение задачи: «Проверка правильности расстановки круглых скобок.»
textual
Листинг программы
static top;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д