c语言程序运行时提示出现了一个问题,导致程序停止工作,求大神指点

就是用堆栈做计算#include"stdafx.h"#include"stacknum.h"#include"StackOperator.h"intpriority(ch... 就是用堆栈做计算
#include "stdafx.h"
#include "stacknum.h"
#include "StackOperator.h"
int priority(char inner, char outer)
{
if(inner=='-' && outer== '*')
return 1;
else if(inner=='-' && outer=='/')
return 1;
else if (inner=='+' && outer=='*')
return 1;
else if (inner=='+' && outer=='/')
return 1;
else return 0;
}

int main(int argc, char* argv[])
int c;
int a,b;
char exp[100];
int i;
StackNum stackNum;
StackOperator stackOp;
printf("%4d", stackNum.IsEmpty());
printf("Enter an expression ");
scanf("%s", exp);
i = 0;
while(exp[i] != '\0') {
if(exp[i] >= '0' && exp[i] <= '9' )
stackNum.Push(exp[i] - '0');
else if (stackOp.IsEmpty())
stackOp.Push(exp[i]);
else {
char op = stackOp.Pop();
int res = 0;
res = priority(op, exp[i]);
if ( res == 1){
stackOp.Push(op);
stackOp.Push(exp[i]);
}
else {a=stackNum.Pop();
b=stackNum.Pop();
if( op='+')
stackOp.Push(a+b);
else if(op='-')
stackOp.Push(a-b);
else if(op='*')
stackOp.Push(a*b);
else stackOp.Push(a/b);
stackOp.Push(exp[i]);
}

}
i++;
}

char op = stackOp.Pop();
a=stackNum.Pop();
b=stackNum.Pop();
if( op='+')
stackOp.Push(a+b);
else if(op='-')
stackOp.Push(a-b);
else if(op='*')
stackOp.Push(a*b);
else stackOp.Push(a/b);
stackOp.Push(exp[i]);
c=stackNum.Pop();
printf("%d\n",c);
printf("Hello World!\n");
return 0;
}堆栈都是做好了的
展开
 我来答
守痕无
推荐于2018-04-13 · 知道合伙人IT服务行家
守痕无
知道合伙人IT服务行家
采纳数:46 获赞数:129
明德奖学金获得者;教师资格证拥有者;

向TA提问 私信TA
展开全部
scanf("%s", exp);这句忘了"&"符号,所以会导致程序停止,刚才我也出现了这个问题,采纳吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式