CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

这段程序问题出在那里了呢?

楼主www20602(小渺)2005-07-03 11:58:11 在 C/C++ / C++ 语言 提问

中序表达式转换成后序,  
  非常老的题目,  
  不过这段为什么不行呢,  
  至少12-(-4)这样的简单表达式都无法转换。  
  希望大家能指点一下  
  void   Transform(char   str[],char   exp[])  
  {  
  SqStack   S;  
  InitStack(S);  
  char   ch;  
  int   i=0;  
  int   t=0;  
  while((ch=str[i++])!='#')  
  {  
  if((ch>='0'&&ch<='9')/*||ch=='.'*/)  
  {  
  exp[t]=ch;t++;  
  while(((ch=str[i++])!='#'&&ch>='0'&&ch<='9')/*||((ch=str[i++])=='.')*/)  
  {  
  exp[t]=ch;t++;  
  }  
  i--;  
  exp[t]='@';t++;  
  }  
  else   if(ch=='(')  
  Push(S,ch);  
  else   if(ch==')')  
  {  
  while(S.elem[S.top]!='(')  
  {  
  Pop(S,exp[t]);t++;  
  }  
  S.top--;//略过'('  
  }  
  else   if(ch=='+'||ch=='-')  
  {  
  while((/*S.elem[S.top]>=0*/S.top!=-1)&&(S.elem[S.top]!='('))  
  {  
  Pop(S,exp[t]);t++;  
  }  
  Push(S,ch);  
  }  
  else   if(ch=='*'||ch=='/')  
  {  
  while((S.elem[S.top]=='*')||(S.elem[S.top]=='/'))  
  {  
  Pop(S,exp[t]);t++;  
  }  
  Push(S,ch);  
  }  
  }  
  while(/*S.elem[S.top]>=0*/S.top!=-1)  
  {  
  Pop(S,exp[t]);t++;  
  }  
  exp[t]='#';  
  DestroyStack(S);  
  } 问题点数:100、回复次数:2Top

1 楼newbiestar()回复于 2005-07-03 12:10:39 得分 100

这个可不是简单的中缀了……这个已经把-作为一个一元操作符来用了,这样的话复杂性就增加了……  
   
  说实话,如果使用sscanf的话,效果会好得多……Top

2 楼www20602(小渺)回复于 2005-07-03 12:43:18 得分 0

似乎是麻烦一些,不过为了与其他的程序连接只好如此了,  
  不过为什么有runtime   error呢Top

相关问题

  • 这段程序错在那里???高分
  • 这个程序那里错???
  • 帮忙看看这段程序那里错了?????????????????????????
  • 请教这段程序在那里出错了?
  • 这段程序问题出在那里呀给分啦!
  • 这个程序那里错了?
  • 那里能下Tulip.c这程序啊?
  • 这样程序错误在那里?
  • 这个程序错在那里.
  • ***请问这段拦截文件操作的程序那里出了问题***

关键词

  • 转换
  • 表达式
  • ch
  • str
  • char

得分解答快速导航

  • 帖主:www20602
  • newbiestar

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo