鱼C论坛

 找回密码
 立即注册
查看: 4640|回复: 13

小甲鱼讲的数据结构与算法的逆波兰表达式那节

[复制链接]
发表于 2015-11-12 21:37:16 | 显示全部楼层 |阅读模式
10鱼币
逆波兰的主函数。
int main()
{
    sqStack s;
    char c;
    double d,e;
    char str[MAXBUFFER];
    int i=0;

    InitStack(&s);

    printf("please with nibolan expression input,\nnumber and expression use ' ' separation and as '#' over:");
    scanf("%c",&c);
    while(c!='#')
    {
        while(isdigit(c)||c=='.')//用于过滤数字。
        {
            str[i++]=c;
            str[i]='\0';//????小甲鱼说让我们去掉这行运行会有问题,我试了试没事啊?小甲鱼重点说这行有很重要的作用,所以想问问?这行有什么用?:smile
            if(i>=10)
            {
                printf("\nerror,input single data too big!\n");
                return -1;
            }
            scanf("%c",&c);
            if(c==' ')
            {
                d=atof(str);
                Push(&s,d);
                i=0;
                break;
            }
        }
        switch(c)
        {
        case '+':
            Pop(&s,&e);
            Pop(&s,&d);
            Push(&s,d+e);
            break;
        case '-':
            Pop(&s,&e);
            Pop(&s,&d);
            Push(&s,d-e);
            break;
        case '*':
            Pop(&s,&e);
            Pop(&s,&d);
            Push(&s,d*e);
            break;
        case '/':
            Pop(&s,&e);
            Pop(&s,&d);
            if(e!=0)
            {
                Push(&s,d/e);
            }
            else
            {
                printf("\nerror,divisor is zeor.\n");
                return -1;
            }
            break;
        }
        scanf("%c",&c);
    }
    Pop(&s,&d);
    printf("the operation result in the end:%f\n",d);

    return 0;
}

最佳答案

查看完整内容

str='\0';// 你这个句有错误,没有中括号, 这句就是在字符数组后面加上\0 每一个字符数组都要以0结尾 要不计算机就不知道段字符有多长,问题出现也是有一定的几率 不是每次都会出现,原因是 你设置的这段字符后面 默认的是0 所以没出什么问题 ,如果字符过长,就不一定了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-12 21:37:17 | 显示全部楼层
str='\0';// 你这个句有错误,没有中括号, 这句就是在字符数组后面加上\0 每一个字符数组都要以0结尾 要不计算机就不知道段字符有多长,问题出现也是有一定的几率 不是每次都会出现,原因是 你设置的这段字符后面 默认的是0 所以没出什么问题 ,如果字符过长,就不一定了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-11-13 12:45:16 | 显示全部楼层
y290176346 发表于 2015-11-13 11:38
str='\0';// 你这个句有错误,没有中括号, 这句就是在字符数组后面加上\0 每一个字符数组都要以0结尾 要 ...

说的不错,应该是str[i]='\0';谢谢大神了。我就是在这些比较抽象的东西方面有点不明白。以后多多照顾。:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-11-13 12:46:02 | 显示全部楼层
浮云骑士 发表于 2015-11-13 12:45
说的不错,应该是str='\0';谢谢大神了。我就是在这些比较抽象的东西方面有点不明白。以后多多照顾。:smil ...

中括号打不上去,我不知道为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-11-13 12:54:55 | 显示全部楼层
浮云骑士 发表于 2015-11-13 12:46
中括号打不上去,我不知道为什么?

str[i]='\0'.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-11-13 12:55:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-24 17:13:22 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-28 11:11:33 | 显示全部楼层
:smile:smile:smile:smile:smile:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-14 15:34:41 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-15 05:51:37 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-15 12:47:41 | 显示全部楼层

不用谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-16 20:27:16 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-21 02:31:29 | 显示全部楼层
其实我看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-21 09:44:13 | 显示全部楼层

其实我知道你是为了转鱼币,我也是。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 02:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表