求助

P1449 后缀表达式

BB2655 @ 2019-01-06 23:01:33

RT 然而编译信息:

/tmp/tmpbnf_y8yw/src: 在函数‘int main()’中:
/tmp/tmpbnf_y8yw/src:11:49: 警告:‘asize’上的运算结果可能是未定义的 [-Wsequence-point]
else if(ch=='+') a[asize-1]=a[asize-1]+a[asize--];
~~~~~^~
/tmp/tmpbnf_y8yw/src:11:49: 警告:‘asize’上的运算结果可能是未定义的 [-Wsequence-point]
/tmp/tmpbnf_y8yw/src:12:49: 警告:‘asize’上的运算结果可能是未定义的 [-Wsequence-point]
else if(ch=='-') a[asize-1]=a[asize-1]-a[asize--];
~~~~~^~
/tmp/tmpbnf_y8yw/src:12:49: 警告:‘asize’上的运算结果可能是未定义的 [-Wsequence-point]
/tmp/tmpbnf_y8yw/src:13:49: 警告:‘asize’上的运算结果可能是未定义的 [-Wsequence-point]
else if(ch=='*') a[asize-1]=a[asize-1]*a[asize--];
~~~~~^~
/tmp/tmpbnf_y8yw/src:13:49: 警告:‘asize’上的运算结果可能是未定义的 [-Wsequence-point]
/tmp/tmpbnf_y8yw/src:14:49: 警告:‘asize’上的运算结果可能是未定义的 [-Wsequence-point]
else if(ch=='/') a[asize-1]=a[asize-1]/a[asize--];
~~~~~^~
/tmp/tmpbnf_y8yw/src:14:49: 警告:‘asize’上的运算结果可能是未定义的 [-Wsequence-point]

以下为源代码:

#include<bits/stdc++.h>
using namespace std;
long long a[1005],n=0;char ch;int asize=0;
int main()
{
    ch=getchar();
    while(ch!='@')
    {
        if(ch>='0'&&ch<='9') n=n*10+ch-'0';
        else if(ch=='.') a[++asize]=n,n=0;
        else if(ch=='+') a[asize-1]=a[asize-1]+a[asize--];
        else if(ch=='-') a[asize-1]=a[asize-1]-a[asize--];
        else if(ch=='*') a[asize-1]=a[asize-1]*a[asize--];
        else if(ch=='/') a[asize-1]=a[asize-1]/a[asize--];
        ch=getchar();
    }
    printf("%lld",a[1]);
    return 0;
}

谢谢


by resftlmuttmotw @ 2019-01-06 23:05:56

@BB2655

您还真是爱切红题啊


by BB2655 @ 2019-01-07 12:35:04

@resftlmuttmotw 然而还是找不出错误


|