浮云骑士 发表于 2015-11-12 21:37:16

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

逆波兰的主函数。
int main()
{
    sqStack s;
    char c;
    double d,e;
    char str;
    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=c;
            str='\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;
}

y290176346 发表于 2015-11-12 21:37:17

str='\0';// 你这个句有错误,没有中括号, 这句就是在字符数组后面加上\0 每一个字符数组都要以0结尾 要不计算机就不知道段字符有多长,问题出现也是有一定的几率 不是每次都会出现,原因是 你设置的这段字符后面 默认的是0 所以没出什么问题 ,如果字符过长,就不一定了!

浮云骑士 发表于 2015-11-13 12:45:16

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

说的不错,应该是str='\0';谢谢大神了。我就是在这些比较抽象的东西方面有点不明白。以后多多照顾。:smile

浮云骑士 发表于 2015-11-13 12:46:02

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

中括号打不上去,我不知道为什么?

浮云骑士 发表于 2015-11-13 12:54:55

浮云骑士 发表于 2015-11-13 12:46
中括号打不上去,我不知道为什么?

str='\0'.

浮云骑士 发表于 2015-11-13 12:55:29

浮云骑士 发表于 2015-11-13 12:54
str='\0'.

str='\0'.

鱼C工作室.YCGZS 发表于 2015-11-24 17:13:22

感谢分享

dps521 发表于 2015-11-28 11:11:33

:smile:smile:smile:smile:smile:smile

zhouxcpython 发表于 2016-5-14 15:34:41

感谢分享

ABCD520232832 发表于 2016-5-15 05:51:37

感谢分享

浮云骑士 发表于 2016-5-15 12:47:41

ABCD520232832 发表于 2016-5-15 05:51
感谢分享

不用谢。

zhouxcpython 发表于 2016-5-16 20:27:16

感谢分享

ABCD520232832 发表于 2016-5-21 02:31:29

其实我看不懂{:10_266:}

浮云骑士 发表于 2016-5-21 09:44:13

ABCD520232832 发表于 2016-5-21 02:31
其实我看不懂

其实我知道你是为了转鱼币,我也是。{:5_107:}
页: [1]
查看完整版本: 小甲鱼讲的数据结构与算法的逆波兰表达式那节