在第37行倒数第二行中,该错误表示为此处未声明,不是在函数中对我有帮助

问题描述

如您所见,在这代码中,我正在尝试从后缀转换为中缀

#include <stdio.h>
#include <stdlib.h>

    double compute(char symbol,double op1,double op2)

    {
        switch(symbol)
        {
            case '+': return op1+op2;
            case '-': return op1-op2;
            case '*': return op1*op2;
            case '$':
            case '^': return (op1,op2);
    
        }
    }
    main()
    {
        double s[20],res,op1,op2;
        int top,i;
        char postfix[20];
        char symbol;
        printf("Enter postfix");
        scanf("%s",postfix);
        top=-1;
        for(i=0;i<stlen(postfix);i++)
            symbol=postfix[i];
        if(isdigit(symbol))
            s[++top]=symbol='0';
        else
        {
            op2=s[top--];
            op1=s[top--];
        }
        res=compute(symbol,op2);
        s[++top]=res;
    }
    res=s[top--];
    printf("res is %d",res);
}

我可能在这里遗漏了一些东西,因为它表明s未声明,但是正如您所看到的,我在s之后两次声明了main()

解决方法

这3行不在任何范围内

res=s[top--];
printf("res is %d",res);
}

这就是为什么您有错误。