| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:模拟堆栈 实现简单的加减乘除 差错望大家指出谢谢
只看楼主 加入收藏
haoyasen
Rank: 2
等 级:论坛游民
帖 子:90
专家分:20
注 册:2013-3-30
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:7 
模拟堆栈 实现简单的加减乘除 差错望大家指出谢谢
#include<iostream>
#include<string.h>
int result(int len,char * str)
{
    int result=0;
    char * fuhao=new char [len];
    int * shuzi=new int [len];
    memset (fuhao,0,sizeof(char )*len);
    memset (shuzi,0,sizeof(int )*len);
    int shuzitop=-1;
    int fuhaotop=-1;
    for(int i=0;i<len;i++)
    {
        if('0'<=str[i]<='9')
            shuzi[++shuzitop]=str[i]-'0';
        if(str[i]=='-'||str[i]=='+'||str[i]=='*'||str[i]=='/')
        {
                if(str[i]=='*')
                {
                    int num1=shuzi[shuzitop];
                    int num2=str[++i];
                    num1*=num2;
                    shuzi[shuzitop]=num1;
            
                }
                if(str[i]=='/')
                {
                    int num1=shuzi[shuzitop];
                    int num2=str[++i];
                    num1/=num2;
                    shuzi[shuzitop]=num1;
                }
                else
                    fuhao[++fuhaotop]=str[i];   
        }
    }
    while(fuhaotop!=-1)
    {
        int a=shuzi[shuzitop--];
        int b=shuzi[shuzitop];//此处报错了
        if(fuhao[fuhaotop--]=='+')
        {
            b+=a;
            shuzi[shuzitop]=b;
        }
        if(fuhao[fuhaotop--]=='-')
        {
            b+=a;
            shuzi[shuzitop]=b;
        }
    }
    result=shuzi[shuzitop];
    delete [] shuzi;
    delete [] fuhao;
    return  result;
}
void main()
{
    char *a="1+2";
    printf("the result is :%d ",result(5,a));
}
搜索更多相关主题的帖子: 加减乘除 include result fuhao 
2013-04-13 11:33
haoyasen
Rank: 2
等 级:论坛游民
帖 子:90
专家分:20
注 册:2013-3-30
收藏
得分:0 
可能 有些多 大家慢慢看  求解释
2013-04-13 11:34
haoyasen
Rank: 2
等 级:论坛游民
帖 子:90
专家分:20
注 册:2013-3-30
收藏
得分:0 
昨天晚上到现在 还没明白  
2013-04-13 11:36
haoyasen
Rank: 2
等 级:论坛游民
帖 子:90
专家分:20
注 册:2013-3-30
收藏
得分:0 
。。。
2013-04-13 11:42
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:20 
if('0'<=str[i]<='9')没有这样比较的吧!数学中可以,计算机不这样吧!你有什么问题,或者不懂的,可以直接问,你是程序不懂,还是怎么滴

Maybe
2013-04-13 11:42
haoyasen
Rank: 2
等 级:论坛游民
帖 子:90
专家分:20
注 册:2013-3-30
收藏
得分:0 
回复 5楼 邓士林
嗯嗯  那个是我着急 那样写的 我感觉  int b=shuzi[shuzitop];//此处报错了这步 为什么报错 我这代码我都读了好几遍了才贴出来的
2013-04-13 11:56
haoyasen
Rank: 2
等 级:论坛游民
帖 子:90
专家分:20
注 册:2013-3-30
收藏
得分:0 
  printf("the result is :%d ",result(5,a));
//这个错误 不是 我调的时候忘改了
2013-04-13 12:03
haoyasen
Rank: 2
等 级:论坛游民
帖 子:90
专家分:20
注 册:2013-3-30
收藏
得分:0 
好吧  大神求带啊  可怜下我被  。。。
2013-04-13 12:14
快速回复:模拟堆栈 实现简单的加减乘除 差错望大家指出谢谢
数据加载中...
 
   



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

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