会员登录 用户名: 密码: 登录 新会员注册 [找回密码]
当前位置:编程论坛 >> 编程技术交流 >> 软件编程论坛 >> [求助]求救此程序的错误
首页
中资源
  发表一个新主题  发表一个新投票  回复主题 您是本帖的第 433 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
 * 贴子主题:[求助]求救此程序的错误 悬赏分100 [已结帖] 报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 Stone-new 帅哥哟,离线,有人找我吗?
  
  
  头 衔:黄瓜斑竹^-^
  等 级:超级版主
  积 分:7357
  专家分:3392
  提问帖:32/32
  回答帖:526
  总帖数:1140
  经验值:1444
  注 册:2008-4-19
给Stone-new发送一个短消息 把Stone-new加入好友 查看Stone-new的个人资料 搜索Stone-new在软件编程论坛的所有贴子  引用回复这个贴子 回复这个贴子

发贴心情 [求助]求救此程序的错误

 本帖原为<zhendeaini>楼主的帖,由于本人操作不慎把帖子给结了,本人深表歉意,
  特为<zhendeaini>楼主再开一帖,以弥补我的过错.恳请大家帮帮忙----

  以下为<zhendeaini>楼主的原帖.

// 123.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include<iostream>
#include<stdio.h>

using namespace std;
#define stackinitsize 100
#define increasize 10
typedef struct{
 int stacksize;
 char *base,*top;
}opt;

char precede(char x,char y)
{
 switch(x)
 {case'+':
      switch(y)
   {case'+':return'>';
    case'-':return'>';
       case'*':return'<';
    case'/':return'<';
    case'(':return'<';
     case')':return'>';
    case'#':return'>';
   }
    case'-':
      switch(y)
   {case'+':return'>';
    case'-':return'>';
       case'*':return'<';
    case'/':return'<';
    case'(':return'<';
     case')':return'>';
    case'#':return'>';
   }
 case'*':
      switch(y)
   {case'+':return'>';
    case'-':return'>';
       case'*':return'>';
    case'/':return'>';
    case'(':return'<';
     case')':return'>';
    case'#':return'>';
   }
  case'/':
      switch(y)
   {case'+':return'>';
    case'-':return'>';
       case'*':return'>';
    case'/':return'>';
    case'(':return'<';
     case')':return'>';
    case'#':return'>';
   }
 case'(':
      switch(y)
   {case'+':return'<';
    case'-':return'<';
       case'*':return'<';
    case'/':return'<';
    case'(':return'<';
     case')':return'=';
    case'#':return' ';
   }
  case')':
      switch(y)
   {case'+':return'>';
    case'-':return'>';
       case'*':return'>';
    case'/':return'>';
    case'(':return' ';
    case')':return'>';
    case'#':return'>';
   }

 case'#':
      switch(y)
   {case'+':return'<';
    case'-':return'<';
       case'*':return'<';
    case'/':return'<';
    case'(':return'<';
     case')':return' ';
    case'#':return'=';;
   }
}}
int createstack(opt &fu)
{
 fu.base=(char *)malloc(sizeof(char)*stackinitsize);
 if(!fu.base)return 0;
 fu.top=fu.base;
 fu.stacksize=0;
 return 1;
}

int pushstack(opt &fu,char e)
{
 if(!fu.base)return 0;
 if(fu.top-fu.base==fu.stacksize){fu.base=(char *)realloc(fu.base,(fu.stacksize+increasize)*sizeof(char));
    if(!fu.base)return 0;
 fu.top=fu.base+fu.stacksize;
 fu.stacksize=fu.stacksize+increasize;
}

 *fu.top++=e;
 return 1;
}

int popstack(opt &fu,char &e)
{
 if(!fu.base)return 0;
 e=*--fu.top;
 return 1;
}

int getstack(opt fu,char &e)
{
 if(!fu.base)return 0;
 e=*fu.top;
 return 1;
}
int fuhao(char &c,int &j)
{int i;
 char str[10]={'0','1','2','3','4','5','6','7','8','9'};
 for(i=1;i<=10;i++)
 {
  if(c==str[i])
  {j=i;return 0;}
    else return 1;
 }
return 1;
}
int operate(char a,char theta, char b)
{
 int c,d;
 fuhao(a,c);fuhao(b,d);
 switch(theta)
 {case'+':return(c+d);
 case'-':return(c-d);
 case'*':return(c*d);
 case'/':return(c/d);
}
}
int main()
{int l(0);
     opt fa,data;
 char c,e,x,a,b,theta,p;
 if(!createstack(fa))return 0;
 if(!pushstack(fa,'#'))return 0;
 if(!createstack(data))return 0;
 cin>>c;
 if(!getstack(fa,e))return 0;
 while(c!='#'|| e!='#')
 {
  if(!fuhao(c,l)){ pushstack(data,c);cin>>c;}
 else
  getstack(fa,e);
  switch( precede(e,c))
 {    case'<':{pushstack(fa,c);cin>>c;break;}
   case'=':{popstack(fa,x);cin>>c;break;}
   case'>':{popstack(fa,theta);popstack(data,b);popstack(data,a);
         pushstack(data,operate(a,theta,b));break;
     }
    }
 }
getstack(data,p);
cout<<p<<endl;return 1;
 
}
无法实现多项式的计算



如果你希望成功,当以恒心为良友,以经验为参谋,以谨慎为兄弟,以希望为哨兵 !
回答得越多就越觉得自己的无知.铁心认真苦读...

发帖:2008-7-25 9:48:00
  鲜花(0)  鸡蛋(0)

本主题贴数7,分页:[返回帖子列表] [上一页] [1] [下一页]

 *树形目录 顶端 
主题:  [求助]求救此程序的错误(3867字) - Stone-new,2008年7月25日
    回复:  lz似乎是想做表达式求值。搞了两个栈,一个用来保存中间运算结果,另外一个保存操作符。之前那个很长的..(160字) - zclever,2008年8月11日
    回复:  看懂了也不会弄·根本没学过[em17](32字) - 剑舞,2008年8月4日
        回复:  [QUOTE[B以下是引用剑舞在2008-8-4 12:49:00的发..(122字) - Stone-new,2008年8月4日
    回复:  这么长,看都看晕了(17字) - zzz14198,2008年7月26日
    回复:  这么问问题会有人帮他吗?[em05](30字) - 财神,2008年7月25日
        回复:  [QUOTE[B以下是引用财神在2008-7-25 18:48:00的..(119字) - Stone-new,2008年7月25日

此主题已经结帖:

zzz14198-20,财神-20,zclever-40,剑舞-20

 *快速回复:[求助]求救此程序的错误  [ 回帖是一种美德 :) ]
会员账号 用户名    还没注册?    密码    忘记密码?
内容
  • HTML标签: 不可用
  • UBB标签: 可用
  • 贴图标签: 可用
  • 多媒体标签:可用
  • 表情字符转换:可用
  • 上传图片:不可用
  • 最多15KB
  • 点击表情图即可在帖子中加入相应的表情
                                
    邮件回复 显示签名   [Ctrl+Enter直接提交贴子]