爱自己 爱生活 2021-05-31 11:51 采纳率: 0%
浏览 38

我想问问运行时错误怎么解决,栈内存没问题啊

#include "stdio.h"
#include "stdlib.h"
typedef struct{
	int* base;
	int top;
	int size;
}Stack;
Stack S1;
void InitStack(Stack &S,int n);
void Push(Stack &S,char e);
char Pop(Stack &S);
bool IsEmpty(Stack S); 

int main()
{
	int n=0,n1=0;
	char a,b;
	char s[100]={'0'};
	char S[100]={'0'};
	a=getchar();
	while(a!='\n')
	{
		S[n1]=a;
		n1++;
		a=getchar();
	}
	for(int i=0;i<n1;i++)
	{
		if(S[i]=='('||S[i]=='{'||S[i]=='['||S[i]==')'||S[i]==']'||S[i]=='}')
		{
			s[n]=S[i];
			n++;
		}
	}
	InitStack(S1,n);
	if(s[0]==')'||s[0]==']'||s[0]=='}')
	{
		printf("%d",0);
		return 0;
	}
	for(int i=0;i<n;i++)
	{
		if(s[i]=='('||s[i]=='{'||s[i]=='[')
		{
			Push(S1,s[i]);
		}
		else if(s[i]==')'||s[i]==']'||s[i]=='}')
		{
			if(!IsEmpty(S1))
			{
				b=Pop(S1);	
				if((b=='('&&s[i]==')')||(b=='['&&s[i]==']')||(b=='{'&&s[i]=='}'))
				{}
				else
				{
					printf("%d",0);
					return 0;
				}
			}
			else
			{
				printf("%d",0);
				return 0;
			}
		}		
	}
	if(IsEmpty(S1))
		printf("%d",1);
	else
		printf("%d",0);
}

void InitStack(Stack &S,int n)
{
	S.base=(int*)malloc(n*sizeof(int));
	S.top=0;
	S.size=n;
}

void Push(Stack &S,char e)
{
	if(S.top>=S.size){
	S.base=(int *)realloc(S.base,(S.size+10)*sizeof(int));
	if(!S.base) exit(0);
	S.size+=10;
	}
	S.base[S.top++]=e;
}

char Pop(Stack &S)
{
	if(S.top!=0)
	{
		S.top--;
		char e=S.base[S.top];
		return e;
	}
	else
		return 0;
}

bool IsEmpty(Stack S)
{
	if(S.top==0)
		return true;
	else
		return false;
}


题目是

假设一算术表达式中包括三种括号:圆括号'('和')'; 方括号'[' 和']'; 花括号'{' 和'}',且三种括号可按任意次序嵌套使用,试编写程序判定输入的表达式所含的括号是否正确配对出现(已知表达式已存入数据元素为字符的顺序表中)。所有括号均为半角符号。

若匹配,则返回1,否则返回0。

自己测试都是对的,但是在系统上总是运行时错误

求求各位大佬帮忙看看,今天就要截止了

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-05-31 12:21
    关注

    测试数据是什么呢?简单测试一下可以运行啊

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?