Кто-нибудь может помочь мне заставить этот код работать
я пытаюсь сбалансировать эти символы , я получаю некоторые ошибки , может ли кто-нибудь попытаться увидеть мой код там, где мне нужны изменения
Ошибка " ошибка сегментации: 11"
Что я уже пробовал:
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef char T; #include "stack.h" int isBalanced(char s[100]) { Stack *stack; int n=strlen(s); int i; for(i=0;i<n;i++) { if(s[i]=='(' || s[i]=='[' || s[i]=='{') { Push(&stack,s[i]); } else if(s[i]==')' || s[i]==']' || s[i]=='}') { if(IsEmptyStack(stack)) { return 0; } else if(Top(stack)!=s[i]) Pop(stack); } } if(IsEmptyStack(stack)) return 1; else return 0; } int main() { char s1[100]="((()))", s2[100]="((())("; if(isBalanced(s1)) printf("Balanced | \n"); else printf("Not balanced | \n"); if(isBalanced(s2)) printf("Balanced | \n"); else printf("Not balanced | \n"); return 0; }
Dave Kreskowiak
... и ошибки были бы...?? подсказка: действительно важная часть, которую вы оставляете вне вопроса.
Patrice T
"я получаю некоторые ошибки"
Какие сообщения об ошибках ?
Этот код не завершен, мы не можем его запустить.
Zubair Farahi
ОПС! dam sorry a " ошибка сегментации: 11"
Zubair Farahi
#include < stdio.h>
#include <stdlib.h>
#include & lt;string.h>
typedef char T;
#включить "stack. h"
int isBalanced(char s[100])
{
Стек *стек;
int n=strlen(s);
int i;
для (i=0;i< n; i++)
{
если(Х[я]=='(' || с[я]=='[' || с[я]=='{')
{
Push(& stack, s[i]);
}
остальное, Если(х[я]==')' || с[я]==']' || с[я]=='}')
{
if (IsEmptyStack(stack))
{
возвращает 0;
}
else if (Top (stack)!=s[i])
Pop(стек);
}
}
if (IsEmptyStack(stack))
возврат 1;
еще
возвращает 0;
}
тап_п()
{
char s1[100]="((()))", s2[100]="((())(";
если(isBalanced(s1))
printf ("сбалансированный | \n");
еще
printf ("не сбалансировано | \n");
если (isBalanced(s2))
printf ("сбалансированный | \n");
еще
printf ("не сбалансировано | \n");
возвращает 0;
}
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.