| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 270 人关注过本帖
标题:算术表达式 --求~~~助T^T
只看楼主 加入收藏
sgm22
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-11-30
收藏
 问题点数:0 回复次数:0 
算术表达式 --求~~~助T^T


我整了个早上,唉唉唉。求大神帮助

void Evaluateexpression_r(){
//算术表达式求值的算符优先算法,设OPTR和OPND分别为运算符栈和运算数栈
char c, d[100];
int i, f, num, tmpa, tmpb;
Stack OPTR, OPND;
InitStack(OPTR);
InitStack(OPND);
Push(OPTR, '#');
c=getchar();
while(c!='#'||GetTop(OPTR)!='#') {
if(c>='0'&&c<='9') {
i=0;
do{
d[i++]=c;
c=getchar();
}while(c>='0'&&c<='9');
d[i]='\0';
num=atoi(d);
Push(OPND, num);
}//if
else if(In(c)) {
switch(Precede(GetTop(OPTR), c)){
case '<'://栈顶元素优先权低
Push(OPTR, (int)c);c=getchar();
break;
case '=': //脱括号并接收下一字符
Pop(OPTR, f);c=getchar();
break;
case '>': //退栈并将运算结果入栈
Pop(OPTR, f);
Pop(OPND, tmpb); Pop(OPND, tmpa);
Push(OPND, Operate(tmpa, f, tmpb));
break;
}//switch
}//else if
}//while
c=getchar();//接收最后输入的一个回车符!!!否则在主函数中只能输入一次...
printf("所求表达式的值为:");
ShowStack(OPND);
printf("\n");

}
int main(){
char ch;
printf("请输入表达式,以 # 结束...\n");
//循环输入表达式,用while语句
Evaluateexpression_r();
printf("\n是否结束算术表达式的求值,以 y 结束...\n");
ch=getchar();
while(ch !='y'){printf(" 请再次输入表达式,以 # 结束...\n");
                         Evaluateexpression_r();
}
//while

return 0;
}//main


图片附件: 游客没有浏览图片的权限,请 登录注册


在MIAN 函数里面  “是否结束表达式值”我输入了不是Y的,就执行不了表达式的输入(输入不了)


[ 本帖最后由 sgm22 于 2013-11-30 11:18 编辑 ]
搜索更多相关主题的帖子: 表达式 表达式 
2013-11-30 11:17
快速回复:算术表达式 --求~~~助T^T
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024190 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved